Com o GNU sed
:
sed '0,/^AAA$/b;//d'
Ou seja, deixe tudo ( b
se ramificar como continue
) até o primeiro AAA
(da 0ª linha (antes mesmo da primeira linha) e a primeira correspondendo /^AAA$/
(que pode ser a primeira linha)) e, em seguida, para as linhas restantes, exclua todas as ocorrências de AAA
(um padrão //
vazio reutiliza o último padrão).
O sed
do GNU é necessário para o endereço 0
(e a capacidade de ter outros comandos após o b
na mesma expressão, embora isso possa ser facilmente contornado em outras implementações usando dois -e
expressões)
com awk
:
awk '$0 != "AAA" || !n++'
(ou para um padrão de expressão regular: awk '!/^AAA$/ || !n++'
)
uma abreviação de:
awk '! (&0 == "AAA" && count > 0) {print; count++}'