|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2003 Messages : 105 ![]() |
Bonjour,
J'ai un fichier qui a le format suivant : "aaaaa;bbbbb;ccc ccc ccc;ddddd" Le résultat attendu est le suivant : "aaaaa;bbbbb;ccccccccc;ddddd" --> autrement dit la suppression des espaces du troisième champ. En faisant quelques recherches sur awk, commande qui doit savoir faire ce genre de truc par trop compliqué, j'en suis arrivé à la commande suivante : echo "aaaaa;bbbbb;ccc ccc ccc;ddddd" | awk -F ';' '{ sub(/ */,"",$3); print}' (sub remplace les blancs de la chaine $3 par rien) sauf que ca me donne le résultat suivant : "aaaaa bbbbb ccc ccc ccc ddddd" Savez vous pourquoi ? Merci par avance, |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
sub cherche et remplace seulement la 1ère occurence rencontrée.
gsub traite toutes les occurences. En plus, c'est / / et non pas / */ Code :
echo "aaaaa;bbbbb;ccc ccc ccc;ddddd" | awk -F ';' '{ gsub(/ /,"",$3); print}'
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() ![]() Inscription : juillet 2008 Messages : 145 ![]() |
Il semble que gsub perturbe quelque peu la valeur du separateur. Ajoute OFS=";" avant le print.
|
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2003 Messages : 105 ![]() |
Merci à tous les deux. Cela résout mon problème.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com