perl 在某一个匹配行前面添加一行新的内容

用perl实现,打开一个文件如(/a),匹配(nameserver)字符串,有多个匹配行,但是只需要在第一个匹配行前面添加一行新的内容(nameserver8)就可以了... 用perl实现,打开一个文件如(/a),匹配(nameserver)字符串,有多个匹配行,但是只需要在第一个匹配行前面添加一行新的内容(nameserver 8)就可以了 展开
 我来答
年忆第散边候1I
推荐于2017-09-20 · TA获得超过128个赞
知道小有建树答主
回答量:114
采纳率:83%
帮助的人:70.2万
展开全部

#!/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;


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式