Tente isto:
sed '/action X/{ N; N; d }'
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".
Tente isto:
sed '/action X/{ N; N; d }'
Aqui está uma alternativa para o awk que faz o mesmo que Nicole sed
answer :
awk '/action X/ { getline; getline; getline } 1'
Tags grep