awk -v n=3 '/<Car>/ && !--n {getline; print; exit}'
Ou:
awk '/<Car>/ && ++n == 3 {getline; print; exit}'
Para passar o padrão de pesquisa como uma variável:
var='<car>'
PATTERN="$var" awk -v n=3 '
$0 ~ ENVIRON["PATTERN"] && ++n == 3 {getline; print; exit}'
Aqui, em ENVIRONvez de -vcomo -vexpande, as seqüências de escape de barra invertida e barras invertidas são frequentemente encontradas em expressões regulares (portanto, é necessário duplicar -v).
O GNU awk4.2 ou superior permite atribuir variáveis como regexps de tipo forte . Desde que seu modo POSIX não esteja ativado (por exemplo, através da $POSIXLY_CORRECTvariável de ambiente, você pode:
# 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,awkou mesmogrep, é aconselhável fazer uso de um analisador XML.