Grep "out" correspondência e n linhas subsequentes

1

Considere um arquivo de log que se parece com isso:

action A
detail 1
detail 2
detail 3
action X
detail 1
detail 2
action B
detail 1
action X
detail 1
detail 2
action C

As linhas com "ação [ABC]" podem ter vários números de linhas "detail" a seguir.

As linhas com "ação X" sempre têm 2 seguindo as linhas "detail".

Não estou interessado no evento X, portanto, gostaria de filtrar todas as linhas com "ação X" e as duas linhas a seguir.

Estou ciente do -v flag, mas não como expressar a parte "e as 2 linhas seguintes".

    
por Nickolay Kolev 14.02.2013 / 07:59

2 respostas

1

Tente isto:

sed '/action X/{ N; N; d }'
    
por 14.02.2013 / 08:08
0

Aqui está uma alternativa para o awk que faz o mesmo que Nicole sed answer :

awk '/action X/ { getline; getline; getline } 1' 
    
por 14.02.2013 / 09:37

Tags