awk -v n=3 '/<Car>/ && !--n {getline; print; exit}'
Atau:
awk '/<Car>/ && ++n == 3 {getline; print; exit}'
Untuk meneruskan pola pencarian sebagai variabel:
var='<car>'
PATTERN="$var" awk -v n=3 '
$0 ~ ENVIRON["PATTERN"] && ++n == 3 {getline; print; exit}'
Di sini menggunakan ENVIRON
alih-alih -v
sebagai -v
memperluas urutan backslash-escape dan backslash sering ditemukan dalam ekspresi reguler (jadi perlu digandakan dengan -v
).
GNU awk
4.2 atau lebih baru memungkinkan Anda menetapkan variabel sebagai regexps yang diketik dengan kuat . Selama mode POSIX-nya tidak diaktifkan (misalnya melalui $POSIXLY_CORRECT
variabel lingkungan, Anda dapat melakukan:
# 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
atau bahkangrep
, itu dianjurkan untuk menggunakan parser XML.