É uma boa pergunta e, embora a resposta mostre que o documento $foi extraviado, não tenho certeza de que deve ser fechado como erro de digitação. Eu vi vários deles recentemente por isso, talvez precisamos de um canônica
roaima
Respostas:
45
As variáveis são referenciadas pelo nome como em var, não $varem awk. $nrefere-se ao campo nth : para o primeiro campo, para o segundo ... ou o registro inteiro para == 0 ( é o registro completo).$1$2n$0
Esses não precisam ser números literais. Você pode usar $(1+1)ou $variable. Se variablecontiver 1, $variableserá o primeiro campo. Um normalmente usado é $NFo ú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 $0que imprime o registro inteiro.
$
de $ var$
foi extraviado, não tenho certeza de que deve ser fechado como erro de digitação. Eu vi vários deles recentemente por isso, talvez precisamos de um canônicaRespostas:
As variáveis são referenciadas pelo nome como em
var
, não$var
emawk
.$n
refere-se ao campon
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
. Sevariable
contiver1
,$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 quevar=0; print $var
, e, portanto , é o mesmoprint $0
que imprime o registro inteiro.O que você quer aqui é:
fonte