5

次の式と同じ行にない可能性のあるto式(sayBEGINと)の間のテキストをgrepしようとしています。END

perl -wln -e 'm/BEGIN.+END/s and print;' < file.txt

s修飾子(in m/RE/s)があるため、改行と一致することが許可されていることに注意してください"."(他のものと一緒に)。

これにより、パターンは特定の順序で単語とその間にある単語と一致します(つまり、パターンBEGINは1行にあり、パターンENDは数行下にあります)。2つのパターンが同じ行にある場合、これは正常に機能しますが、複数の行にまたがる場合は機能しません。ここで何が欠けていますか?

4

1 に答える 1

7

実際、私は欠けている部分を見つけました!-0777レコードのようにファイル全体を検索し、print $&代わりに次を使用して一致した式を出力するオプションを使用する必要がありました。

perl -wln -0777 -e 'm/BEGIN.+END/s and print $&;' < file.txt
于 2013-02-17T20:51:49.980 に答える