我想删除文本文件中以 HPL_ 开头的所有行我已经实现了这一点并且可以打印到屏幕上,但是当我尝试写入文件时,我只是在新文件中打印了修改文本的最后一行。请任何帮助!

open(FILE,"<myfile.txt");
@LINES = <FILE>;
close(FILE);
open(FILE,">myfile.txt");
foreach $LINE (@LINES) {
@array = split(/\:/,$LINE);


my $file = "changed";

open OUTFILE, ">$file" or die "unable to open $file $!";

print OUTFILE $LINE unless ($array[0] eq "HPL_");

}
close(FILE);
close (OUTFILE);




exit;

最佳答案

您只想删除所有以 HPL_ 开头的行?这很容易!

perl -pi -e 's/^HPL_.*//s' myfile.txt

是的,它真的只是一个单线。 :-)

关于Perl 问题打印输出到新文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6142609/

10-12 00:44
查看更多