![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Shell Vos questions sur l'utilisation des commandes shell |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre du Club
![]() Date d'inscription: janvier 2003
Messages: 87
|
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, |
|
|
|
|
|
#2 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2007
Localisation: Toulouse
Messages: 471
|
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. |
|
|
|
![]() |
![]() |
||
AWK suppression d'espace dans une ligne
|
||
| Outils de la discussion | |
|
|