Experimente com o awk:
awk '/^Start/,/^End/' file
ou se preferir sed:
sed -n '/Start/,/End/p' file
Eu preciso extrair dados de log de muitos terrabytes de arquivos de log. O problema é que os dados que preciso começam e terminam com padrões que eu posso identificar, mas o código entre pode ser qualquer coisa entre 10 e mais de 100 linhas.
Exemplo:
Start
# lots of lines here
End
Atualmente, o que eu faço é grep -A 50 "Start"
, o que me dá o início e as 50 linhas a partir de então. No entanto, em quase todos os casos, é mais ou menos do que eu preciso. Mais significado o arquivo de relatório resultante cresce Gigabytes maior do que precisa ser e menos significado eu não recebo as informações que eu preciso.
Existe uma maneira de extrair exatamente o que eu preciso, usando ferramentas padrão Unix / Linux?