awk -v n=3 '/<Car>/ && !--n {getline; print; exit}'
Hoặc là:
awk '/<Car>/ && ++n == 3 {getline; print; exit}'
Để vượt qua mẫu tìm kiếm dưới dạng một biến:
var='<car>'
PATTERN="$var" awk -v n=3 '
$0 ~ ENVIRON["PATTERN"] && ++n == 3 {getline; print; exit}'
Ở đây sử dụng ENVIRON
thay vì -v
như -v
nở chuỗi xuyệc ngược-thoát và backslashes thường được tìm thấy trong biểu thức thông thường (như vậy sẽ cần phải được tăng gấp đôi với -v
).
GNU awk
4.2 trở lên cho phép bạn gán các biến dưới dạng biểu thức chính được gõ mạnh . Miễn là chế độ POSIX của nó không được bật (ví dụ thông qua $POSIXLY_CORRECT
biến môi trường, bạn có thể thực hiện:
# 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
hoặc thậm chígrep
, đó là khuyến khích để làm cho việc sử dụng một phân tích cú pháp XML.