ログファイルの最後の「チャンク」(パターン)を取得する

ログファイルの最後の「チャンク」(パターン)を取得する

私のログファイル:

...
----------
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

おすすめ記事