繁体   English   中英

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

[英]perl regex to match “==” at end of line

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

我不确定你为什么要使用-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==

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM