我无法获取此perl语句以正确过滤输出文件。
perl -00 -wnl -e '
/Instance list size <\d+>\n(.+)\*\*end/s or die "error msg\n";
foreach my $line (split("\n", $1)) {
$line =~ /(==)$/ && print "\"$_\"" ;
}' $Output_File 2>&1
我感兴趣的输出是以==结尾的所有行。但由于某种原因,当我运行它时,即使在只有8行和1个预期匹配的文件中,我也会得到22场比赛。
答案 0 :(得分:2)
我不确定您为什么使用-n
选项并且脚本中仍然有foreach my $line ...
。 -n
的重点是它会自动为您的脚本提供一行一行。
这对我有用:
$ cat foo.txt
asdfasdfsadf asdf a== asfd a sdf
aasdf asdf asd f==
asdf asdf asdf sad fsdaf==
asdfasdfasdf sadfsadf=aa sdfasdf =
$ perl -ne "print if /==$/" < foo.txt
aasdf asdf asd f==
asdf asdf asdf sad fsdaf==
答案 1 :(得分:2)
您可以随时尝试grep
:grep '==$' file.txt