Obtenha o conteúdo de um arquivo da primeira instância para a última instância de alguma cadeia arbitrária

3

Como posso ver em less da primeira instância de alguma string arbitrária "foo" para a última instância?

Essa string arbitrária estará na maioria das linhas do log. Não quero fazer grep "foo" bar.log | less porque não será em cada linha relevante.

Digamos que o arquivo seja

1 Don't care about
2 Care about (foo)
3 Care about (foo)
4 Care about
5 Care about (foo)
6 Don't care about

Eu estou querendo saber como obter o seguinte em less de alguma forma,

2 Care about (foo)
3 Care about (foo)
4 Care about
5 Care about (foo)

grep "foo" bar.log | less não funcionará porque ignora a linha 4, com a qual eu me preocupo.

    
por Captain Man 17.03.2016 / 16:01

1 resposta

4

Se você tem awk , pode fazer:

awk '/foo/{print b$0;b="";x=1;next} x{b=b$0"\n"}' bar.log | less

Ele armazena todas as linhas desde a última ocorrência da variável foo in b .

    
por 17.03.2016 / 17:19