以下を含むログファイルがあります。始めるそして閉鎖1日あたりの回数。
最後のパターンが始まり、閉じられたことを見たいです(毎日更新されるファイルの終わりに)。
また、開始と終了の間にすべての行は必要ありません。最後の開始以来、いくつかの行(3行)と最後の終了以降、いくつかの行(3行)のみが必要です。
一行の提案はありますか?
答え1
ログファイルの(抽出された)行を2回反転しても構わない場合は、およびのsed
組み合わせを使用できます(参照:grep
ファイルの行を置き換える方法は?)。
# test case
echo '
startup 1
shutdown 1
startup 2
shutdown 2
startup 3
line 1
line 2
line 3
line 4
line 5
shutdown 3
line 1
line 2
line 3
line 4
line 5
' |
tail -r | sed -n -e '1,/startup/p' | tail -r | grep -E -A 3 '(startup|shutdown)'
# output
startup 3
line 1
line 2
line 3
--
shutdown 3
line 1
line 2
line 3
答え2
「--after-context」オプションを使用して、sedの代わりにgrepを使用してみてください。
例:
cat logfile | grep --after-context=3 startup