データを塊に印刷するプログラムがあります。各ブロックは空行で区切られます。
ほとんどのブロックを捨てて正規表現に一致するブロックだけを維持したいと思います。
もちろん、スクリプト言語やプログラムを使用してこれを行うこともできますが、これはかなり粗雑に見えます。もっと良い方法がありますか?
ベストアンサー1
awk
そして、perl
このために設計された特殊モードもあります。 ~と呼ばれる節モデル。このモードでは、レコードは段落です。つまり、一連の空行に分けられます。
の場合は空の文字列にawk
設定されます。RS
awk -v RS= -v ORS='\n\n' '/regexp/'
そしてperl
、そしてです-00
。
perl -00 -ne 'print if /regexp/'