次のような構造のファイルがあります。
BOF
-------Title1-------
stuff here
some stuff
-------Title2-------
extra things
extra things
extra things
-------Title3-------
and some stuff
here
...
-------Title4-------
stuff
EOF
今、私はこのようなことをしたいと思います:
grep-by-section KEYWORD DELIMITER my-file
となることによって
grep-by-section "some" "^---" my-file
出力
-------Title1-------
stuff here
some stuff
-------Title3-------
and some stuff
here
特定のキーワードを見つけたいのですが、発見ごとに、既知の区切り文字の間のブロック全体を出力したいと考えています。どうやってやるの?sed
ここで失敗します。
ここでの区切り文字は「------」ですが、たとえば [0-9]{8} 形式の数字のような別のものでもかまいません。
私が解決できなかった同様の問題は、ブロックの内容を出力する代わりに、ブロックのタイトルだけを出力することです。
perl
よりも解決しやすいようですsed