Các biến được tham chiếu theo tên như trong var
, không phải $var
trong awk
. $n
đề cập đến n
thứ lĩnh vực : $1
cho trường đầu tiên, $2
cho phần thứ hai ... hoặc toàn bộ đăng ký cuối cùng n
== 0 ( $0
có đầy đủ các hồ sơ).
Những người không phải là số theo nghĩa đen. Bạn có thể sử dụng $(1+1)
hoặc $variable
. Nếu variable
chứa 1
, thì $variable
sẽ là trường đầu tiên. Một trường thường được sử dụng là $NF
cho trường cuối cùng ( NF
là biến đặc biệt có chứa số lượng trường).
Nếu, như trong ví dụ của bạn, biến không chứa số, số không đó được hiểu là 0.
Vì vậy var="content"; print $var
, giống như var=0; print $var
, và do đó, giống như print $0
, đó là in toàn bộ hồ sơ.
Những gì bạn muốn ở đây là:
echo "foo bar" | gawk -v var="content" '{print var}'
$
khỏi $ var