As variáveis são referenciadas pelo nome como em var
, não $var
em awk
. $n
refere-se ao campo n
th : para o primeiro campo, para o segundo ... ou o registro inteiro para == 0 ( é o registro completo).$1
$2
n
$0
Esses não precisam ser números literais. Você pode usar $(1+1)
ou $variable
. Se variable
contiver 1
, $variable
será o primeiro campo. Um normalmente usado é $NF
o último campo ( NF
é a variável especial que contém o número de campos).
Se, como no seu exemplo, a variável não contiver um número, esse número não será entendido como 0.
Portanto var="content"; print $var
, é o mesmo que var=0; print $var
, e, portanto , é o mesmo print $0
que imprime o registro inteiro.
O que você quer aqui é:
echo "foo bar" | gawk -v var="content" '{print var}'
$
de $ var