perl正则表达式在行尾匹配“==”

时间:2013-05-30 23:26:54

标签: regex perl

我无法获取此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场比赛。

2 个答案:

答案 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)

您可以随时尝试grepgrep '==$' file.txt