Uma solução awk
:
$ awk '$0 == "UNIX" {i=1;next};i && i++ <= 2' file
Test 5
Test 6
Explicação
-
/^UNIX$/{i=1;next}
: se virmosUNIX
, definimos a variáveli = 1
, processando para a próxima entrada. -
Se a variável
i
estiver definida (ou seja,UNIX
),i && i++ <= 2
será avaliado apenas como valor real nas próximas duas linhas depois deUNIX
, fazendo com queawk
execute a ação padrãoprint $0
. -
Antes de ver
UNIX
,i
não foi definido e começa na terceira linha depois deUNIX
,i
ter um valor maior que 2, o que torna a expressãoi && i++ <= 2
avaliada como falsa, causandoawk
não faz nada.