awk -v n=3 '/<Car>/ && !--n {getline; print; exit}'
O:
awk '/<Car>/ && ++n == 3 {getline; print; exit}'
Para pasar el patrón de búsqueda como una variable:
var='<car>'
PATTERN="$var" awk -v n=3 '
$0 ~ ENVIRON["PATTERN"] && ++n == 3 {getline; print; exit}'
Aquí, el uso en ENVIRONlugar de -vas -vexpande las secuencias de escape de barra invertida y las barras invertidas a menudo se encuentran en expresiones regulares (por lo que deberían duplicarse -v).
GNU awk4.2 o superior le permite asignar variables como expresiones regulares de tipo fuerte . Mientras su modo POSIX no esté habilitado (por ejemplo, a través de la $POSIXLY_CORRECTvariable de entorno, puede hacer lo siguiente:
# GNU awk 4.2 or above only, when not in POSIX mode
gawk -v n=3 -v pattern="@/$var/" '
$0 ~ pattern && ++n == 3 {getline; print; exit}'
sed,awko inclusogrep, es aconsejable utilizar un analizador XML.