我目前正在通过区域文件对自动删除进行排序..
perl -i -ne 'print unless (/#$DOMAINNAME/ and \$n=7) .. not \$n--' named.conf.ext
(逃避n需要它才能工作,我想其他它认为主脚本有一个n变量要传递?)
这个调用来自perl脚本,我想通过不必调用shell从perl脚本重新运行perl来完成它,并让主脚本执行它来清理它。
这里不是perl专家,你可能会说:)我尝试过像
这样的事情open (DATAIN, "<named.conf.ext");
open (DATAOUT, "> named.conf.tmp");
while (<DATAIN>){
PRINT unless (/#foo.com/ and $n=7) .. not $n-- DATAOUT;
}
close DATAOUT;
close DATAIN;
和一些变种,但它抱怨 测试线4处的语法错误,靠近“ - DATAOUT”
我确信我在这方面太过分了,答案就在我面前,但是2天后,我认为大脑需要在这里开始。
由于
答案 0 :(得分:3)
通常是
print DATAOUT;
是
的缩写print DATAOUT $_;
所以你想要
print DATAOUT unless (/#foo.com/ and $n=7) .. not $n--;
或更长的
print DATAOUT $_ unless (/#foo.com/ and $n=7) .. not $n--;