Usando o GNU sed
:
$ sed '/AA/,+2d' <file
SomeTestABCD
String
EndTest
SomeTestDEFG
String
EndTest
SomeTestACDF
String
EndTest
O script GNU sed
localiza linhas que contêm a string AA
e, em seguida, exclui essa linha e as duas linhas seguintes da entrada. O endereçamento relativo +2
é uma extensão sed
do GNU para o padrão sed
.
Usando o padrão sed
, excluindo duas linhas:
sed -n '/AA/{n;n;d;}; p' <file
Isso usa sed
sem gerar implicitamente todas as linhas de entrada (com -n
). Quando o padrão AA
é correspondido, as próximas duas linhas são explicitamente lidas e excluídas. Todas as linhas que não acionam o padrão serão impressas.
Com o padrão sed
, excluindo a linha EndTest
:
sed '/AA/,/^EndTest$/d' <file
Isso exclui todas as linhas das linhas que contêm a string AA
para a linha imediatamente seguinte que corresponde ao padrão ^EndTest$
.
Usando awk
para ignorar duas linhas depois de corresponder a AA
:
awk '/AA/ { getline; getline; next } 1' <file
Usando awk
da mesma forma que a última sed
variação:
awk '/AA/,/^EndTest$/ { next } 1' <file