awk / nawk : passage de paramètres avec espaces

Le
Tittom
Bonjour

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

Mon shell contient un appel nawk, de cette faon :

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

Je lance mon script en lui passant en paramtre des phrases, pouvant
contenir des espaces. Je souhaite rcuprer chaque phrase dans awk, en
prservant les espaces. Par exemple :

Commande : script.sh "je contiens des espaces " " moi aussi "
Rsultat espr :
=
.je contiens des espaces .
=

Mais j'obtiens ceci :
=
.je.
=


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


Je ne vois pas comment procder pour obtenir
=
.je contiens des espaces .
=

Quelqu'un a une ide ?
Merci pour vos rponses

Tittom
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