私のログファイル:
...
----------
text1
text2
----------
text3
text4
----------
今、最後のブロック("----------"の間)だけをgrepしたいです - > text3/text4
ありがとうございます:-)
解決策が見つかりませんでした。
以下はより長い入力例です。
----------
texta
textb
----------
textc
textd
----------
texte
textf
----------
textg
texth
----------
text1
text2
----------
text3
text4
----------
希望の出力は最後のブロックです。ただ:
text3
text4
ベストアンサー1
tacを使用して最初の最後の数行を見てから、最初のチャンクを取得して印刷してからsedを終了し、tacを再使用して順序を復元します。
$ tac file |
sed -ne '
/--/,/--/!d
//G
/\n/!{p;d;}
/\n$/!q
s/.*/.*/;h
' | tac