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 ENVIRON
lugar de -v
as -v
expande 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 awk
4.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_CORRECT
variable 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
,awk
o inclusogrep
, es aconsejable utilizar un analizador XML.