1

この 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 の一致が得られます。

4

2 に答える 2

2

-nオプションを使用しているのに、まだforeach my $line ...スクリプトに a がある理由がわかりません。要点は-n、スクリプトに一度に 1 行ずつ自動的にフィードすることです。

ここに私のために働くものがあります:

$ 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==
于 2013-05-30T23:32:56.410 に答える