awk / nawk : passage de paramètres avec espaces

Le
Tittom
Bonjour

Je me casse les dents sur une histoire de passage de paramètres à
nawk, dans un script shell. Voici ce que je souhaite faire

Mon shell contient un appel à nawk, de cette façon :

== script.sh =
nawk -f - -- $* <<BLOC_NAWK
BEGIN {
var=ARGV[1]
print("." var ".")
}
BLOC_NAWK
=

Je lance mon script en lui passant en paramètre des phrases, pouvant
contenir des espaces. Je souhaite récupérer chaque phrase dans awk, en
préservant les espaces. Par exemple :

Commande : script.sh "je contiens des espaces " " moi aussi "
Résultat espéré :
=
.je contiens des espaces .
=

Mais j'obtiens ceci :
=
.je.
=


J'ai essayé d'entourer le "$*" avec des guillemets, mais j'obtiens la
concaténation des deux phrases - avec espaces :
=
.je contiens des espaces moi aussi .
=


Je ne vois pas comment procéder pour obtenir
=
.je contiens des espaces .
=

Quelqu'un a une idée ?
Merci pour vos réponses

Tittom
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Luc.Habert.00__arjf
Le #737250
Tittom :

nawk -f - -- $* <<BLOC_NAWK


Toujours utiliser « "$@" » et non « $* », sauf dans le cas sur mille où on
veut vraiment « $* ».

Tittom
Le #737249
On 31 mai, 14:42, (Luc Habert)
wrote:

nawk -f - -- $* <<BLOC_NAWK


Toujours utiliser « "$@" » et non « $* », sauf dans le cas sur mi lle où on
veut vraiment « $* ».


J'ai essayé en utilisant donc : nawk -f - -- "$@" <<BLOC_NAWK
J'obtiens bien le comportement espéré !

Le $@ était la brique qui me manquait, merci de me l'avoir
indiquée :o)

Tittom


Publicité
Poster une réponse
Anonyme