Se você sabe que src:
ocorre no início de uma linha e que foo
está entre aspas e precedido por um espaço e que deve haver dois pontos no início da linha, use
awk 'BEGIN{a=0} /^$/{if(a==1) print b; a=0} /:.* "foo"/{a=1} /^src:/{b=$0} END{if(a==1) print b}'
Usamos a variável a
para lembrar se o padrão foo
ocorre ou não no bloco de entrada e a variável b
para armazenar a linha src:
. No começo, a
é definido como 0. Sempre que encontramos uma linha vazia (ou seja, ^$
), verificamos o valor de a
, imprimimos condicionalmente b
e redefinimos a
. Se encontrarmos "foo"
precedido por dois pontos no início da linha, definimos a
como 1. Se encontrarmos src:
no início de uma linha ( ^
), armazenamos em b
. No final, verificamos mais uma vez se a == 1
, se assim for, imprimiremos b
.