我想删除以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;
Run Code Online (Sandbox Code Playgroud)
你只想删除所有以HPL_?开头的行?这很简单!
perl -pi -e 's/^HPL_.*//s' myfile.txt
Run Code Online (Sandbox Code Playgroud)
是的,它真的只是一个单行.:-)