Effectivement. Je me suis confondu avec la syntaxe bash ...
nicoco
C'est une bonne question et bien que la réponse montre que le $était mal placé, je ne suis pas sûr qu'il devrait être fermé comme faute de frappe. J'en ai vu plusieurs récemment, alors peut-être en avons-nous besoin d'un canon
roaima
Réponses:
45
Les variables sont référencées par leur nom comme dans var, pas $vardans awk. $nfait référence au champ ne : pour le premier champ, pour le second ... ou l'enregistrement entier pour == 0 ( est l'enregistrement complet).$1$2n$0
Il ne s'agit pas nécessairement de nombres littéraux. Vous pouvez utiliser $(1+1)ou $variable. Si variablecontient 1, alors $variablesera le premier champ. Un $NFchamp couramment utilisé concerne le dernier champ ( NFc'est la variable spéciale qui contient le nombre de champs).
Si, comme dans votre exemple, la variable ne contient pas de nombre, ce non-nombre est compris comme 0.
Donc var="content"; print $var, c'est la même chose var=0; print $var, et donc la même chose que print $0, c'est imprimer tout l'enregistrement.
$
de $ var$
était mal placé, je ne suis pas sûr qu'il devrait être fermé comme faute de frappe. J'en ai vu plusieurs récemment, alors peut-être en avons-nous besoin d'un canonRéponses:
Les variables sont référencées par leur nom comme dans
var
, pas$var
dansawk
.$n
fait référence au champn
e : pour le premier champ, pour le second ... ou l'enregistrement entier pour == 0 ( est l'enregistrement complet).$1
$2
n
$0
Il ne s'agit pas nécessairement de nombres littéraux. Vous pouvez utiliser
$(1+1)
ou$variable
. Sivariable
contient1
, alors$variable
sera le premier champ. Un$NF
champ couramment utilisé concerne le dernier champ (NF
c'est la variable spéciale qui contient le nombre de champs).Si, comme dans votre exemple, la variable ne contient pas de nombre, ce non-nombre est compris comme 0.
Donc
var="content"; print $var
, c'est la même chosevar=0; print $var
, et donc la même chose queprint $0
, c'est imprimer tout l'enregistrement.Ce que vous voulez ici, c'est:
la source