perl 在某一个匹配行前面添加一行新的内容
用perl实现,打开一个文件如(/a),匹配(nameserver)字符串,有多个匹配行,但是只需要在第一个匹配行前面添加一行新的内容(nameserver8)就可以了...
用perl实现,打开一个文件如(/a),匹配(nameserver)字符串,有多个匹配行,但是只需要在第一个匹配行前面添加一行新的内容(nameserver 8)就可以了
展开
1个回答
展开全部
#!/usr/bin/perl
$file = shift;
$matched = 0;
$newFile = "balabalabala_tmp";
die "usage: ./test.pl filename\n" if !defined $file;
open FD, "<$file" or die "can't open $file:$!";
open TMP, ">$newFile";
select TMP;
while(<FD>) {
$line = $_;
if(!$matched && /nameserver/) {
print "nameserver 8\n";
$matched = 1;
}
print $line;
}
close FD;
close TMP;
unlink $file;
rename $newFile, $file;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询