複数行正規表現の空行区切り記号、

複数行正規表現の空行区切り記号、

データを塊に印刷するプログラムがあります。各ブロックは空行で区切られます。

ほとんどのブロックを捨てて正規表現に一致するブロックだけを維持したいと思います。

もちろん、スクリプト言語やプログラムを使用してこれを行うこともできますが、これはかなり粗雑に見えます。もっと良い方法がありますか?

ベストアンサー1

awkそして、perlこのために設計された特殊モードもあります。 ~と呼ばれるモデル。このモードでは、レコードは段落です。つまり、一連の空行に分けられます。

の場合は空の文字列にawk設定されます。RS

awk -v RS= -v ORS='\n\n' '/regexp/'

そしてperl、そしてです-00

perl -00 -ne 'print if /regexp/'

おすすめ記事