Comment puis-je utiliser le shell variables dans un script awk?

J'ai trouvé quelques façons de passer externe de la coquille des variables à un awk script, mais je suis confus au sujet de ' et ".

Tout d'abord, j'ai essayé avec un script shell:

$ v=123test
$ echo $v
123test
$ echo "$v"
123test

Ensuite essayé awk:

$ awk 'BEGIN{print "'$v'"}'
$ 123test
$ awk 'BEGIN{print '"$v"'}'
$ 123

Pourquoi est la différence?

Enfin j'ai essayé ceci:

$ awk 'BEGIN{print " '$v' "}'
$  123test
$ awk 'BEGIN{print ' "$v" '}'
awk: cmd. line:1: BEGIN{print
awk: cmd. line:1:             ^ unexpected newline or end of string 

Je suis confus au sujet de ce.

  • J'aime l'-v comme indiqué ci-dessous, mais c'est vraiment un excellent exercice de réflexion sur la façon de protéger les choses à partir du shell. De travail par le biais de ma première coupe, utilisez des barres obliques inverses sur des espaces et des signes dollar. Inutile de dire que les exemples ici sont bien la peine de mon temps.
  • Connexes: la Différence entre les guillemets simples et doubles dans awk.
InformationsquelleAutor hqjma | 2013-09-29