-->
#!/usr/bin/perl -w
use strict;
my $file=shift;
my $hostname=shift;
open FD,'+<',$file;
while(<FD>)
{
if($_ =~ /(127.0.0.1\s+)(\S+$)/)
{
seek FD,-length($_),1;
print FD $1,$hostname," ",$2;
close FD;
exit 0;
}
}
close FD
[root@supersun changehostname]# cat hosts
127.0.0.1 localhost.localdomain localhost
192.168.2.11 newmail
[root@supersun changehostname]# ./host.pl hosts sun
[root@supersun changehostname]# cat hosts
127.0.0.1 sun localhost.localdomain localhost
192.168.2.11 newmail
[root@supersun changehostname]#
seek的用法
seek FH,$pos,0 这里的$pos是指针的绝对位置如: seek FH,0,0指针移到文件的开始处
seek FH,$pos,1 向前或向后移动$pos个字节,如果$pos为正则指针前移,$pos为负则指针后移
seek FH,$pos,2 相对于文件结尾处进很定位

发表评论