Você pode usar uma combinação de sed
e grep
se não se importar em reverter as linhas (extraídas) do arquivo de log duas vezes (consulte Como posso reverter as linhas em um arquivo? ).
# 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