我正试图创建一个perl脚本来使用vim删除文件中的行。我想自动化这项任务,因为我必须删除这些行一遍又一遍。这是我到目前为止写的剧本,但它不起作用。

#!/usr/bin/perl
my $PROG        = 'hwdr';
my $PERS        = "/u/blh/scripts/70-persistent-net.rules";
open (IN, $PERS) || die "Cannot open file".$PERS."for read";
@lines = <IN>;
close IN;

open (OUT, ">", $PERS) || die "Cannot open file. Please run as root".$PERS."for write";
foreach $line (@lines)
{
    $line =~ 8,10d ;
    print OUT $line;
}

close OUT;

谢谢你的帮助

最佳答案

使用$.跟踪行号:

while (<IN>) {
    last if $. > 10;
    print;
}

或使用就地编辑的单行版本:
perl -pi -e '$. > 10 && exit;' /u/blh/scripts/70-persistent-net.rules

10-07 17:07