Awk et délimiteur
Résolu
raymond
-
MyTux Messages postés 228 Statut Membre -
MyTux Messages postés 228 Statut Membre -
Bonjour,
J'ai un soucis avec un petit script
Mais parfois, argument3 est marqué comme ça : argu-ment-3 et du coup :
Comment faire pour obtenir l'argument en entier svp ? J'ai essayé de changer le délimiteur pour ", ', ', | mais ça ne passe pas dans mon script (qui est lié à un script ajax et autres).
Existe-t-il une recette simple pour résoudre mon soucis.
Merci
J'ai un soucis avec un petit script
$ cat fichier
argument1-argument2-argument3
$ cat fichier | awk -F '-' '{ print $3 }'
argument3
Mais parfois, argument3 est marqué comme ça : argu-ment-3 et du coup :
cat fichier | awk -F '-' '{ print $3 }'
argu
Comment faire pour obtenir l'argument en entier svp ? J'ai essayé de changer le délimiteur pour ", ', ', | mais ça ne passe pas dans mon script (qui est lié à un script ajax et autres).
Existe-t-il une recette simple pour résoudre mon soucis.
Merci
2 réponses
Salut,
Sans changer de délimiteur je ne vois pas trop comment tu pourrais arriver à tes fins ;-(
Quand tu dis "J'ai essayé de changer le délimiteur pour ", ', ', |", à quel niveau ? Au niveau du fichier ou de la commande awk ?
Sans changer de délimiteur je ne vois pas trop comment tu pourrais arriver à tes fins ;-(
Quand tu dis "J'ai essayé de changer le délimiteur pour ", ', ', |", à quel niveau ? Au niveau du fichier ou de la commande awk ?
J'ai essayé de changer le délimiteur au moment ou le fichier est créé (script ajax) mais ça ne fonctionnait pas. Vu comme j'ai eu du mal à faire fonctionner ce script ajax, j'aurais préféré intervenir sur la commande awk directement. Je me suis dit qu'il y avait peut-être moyen de dire à la commande qu'après le second délimiteur c'est terminé ?
Alors essaie ainsi:
awk -F"-" '{print $1}' fichier$1 = 1er Arg
$2 = 2em Arg
...
$n = Nem Arg
Bien à toi,
MyTux.
Et les 2 premiers champs sont délimités par un tiret, sans que rien n'interfère comme dans le 3ème chanp ?
$ cat fichier argument1-argument2-argument3 argument1-argument2-arg-ume-nt3 $ sed ':z;s/-/,/3;tz' fichier | awk -F'-' '{print $3}' argument3 arg,ume,nt3;-))