Para casos genéricos, veja esta excelente resposta de Ed Morton: Impressão com sed ou awk uma linha seguindo um padrão correspondente
.
d) Print every record except the Nth record after some regexp:
awk 'c&&!--c{next}/regexp/{c=N}1' file
Candidatar-se a uma determinada entrada
$ awk 'c && !--c{next} /^Enter your password/{c=2} 1' ip.txt
Enter command below
> login
Command valid
Enter your password at the below prompt
Remember to make sure no-one is looking at your screen
Password accepted
-
/^Enter your password/{c=2} 1
here c
é a nona linha após a correspondência ser ignorada, 1
para imprimir o registro de entrada
-
c && !--c{next}
o &&
é o operador de curto-circuito, portanto, contanto que c
seja falso, c
não será decrementado. Depois que c
for definido para um valor, ele será diminuído desde que não atinja 0