PB avec un sed pour substitution caractères
Résolu
JsuisNul
Messages postés
137
Statut
Membre
-
UnGnU Messages postés 1468 Statut Contributeur -
UnGnU Messages postés 1468 Statut Contributeur -
Bonjour,
Voila j'ai une ligne de commande qui me permet de retirer tous les espaces non significatif ainsi que le remplacement des "," par des ".".
Mon soucis se trouve au niveau du remplacement de la virgule par le point.
En effet, j'ai deux champs successifs ou la modification devrait se faire sauf que seul le premier champ est modifié.
Ma ligne en entrée :
XXXXXXX;FFFFF;GGGGG; 35,00;155,67;TTT
ma ligne de commande :
cat fic1 | sed 's/ \{2,\}//g;s/,/./' > fic2
Résultat :
XXXXXXX;FFFFF;GGGGG; 35.00;155,67;TTT
Quelqu'un pourrait me dire pourquoi le deuxième champ n'est pas modifié ?
Merci d'avance
Voila j'ai une ligne de commande qui me permet de retirer tous les espaces non significatif ainsi que le remplacement des "," par des ".".
Mon soucis se trouve au niveau du remplacement de la virgule par le point.
En effet, j'ai deux champs successifs ou la modification devrait se faire sauf que seul le premier champ est modifié.
Ma ligne en entrée :
XXXXXXX;FFFFF;GGGGG; 35,00;155,67;TTT
ma ligne de commande :
cat fic1 | sed 's/ \{2,\}//g;s/,/./' > fic2
Résultat :
XXXXXXX;FFFFF;GGGGG; 35.00;155,67;TTT
Quelqu'un pourrait me dire pourquoi le deuxième champ n'est pas modifié ?
Merci d'avance
1 réponse
-
Salut,
Il manque l'option "g" (global) dans ta seconde expression ;-\
sed 's/ \{2,\}//g;s/,/./g'
-
- De rien ;-)
Un seul (le 1er) :$ echo "aXbXcXdXeXfXg" | sed 's/X/|/'
a|bXcXdXeXfXg
Tous :$ echo "aXbXcXdXeXfXg" | sed 's/X/|/g'
a|b|c|d|e|f|g
Uniquement le 3ème :$ echo "aXbXcXdXeXfXg" | sed 's/X/|/3'
aXbXc|dXeXfXg
Uniquement le 5ème :$ echo "aXbXcXdXeXfXg" | sed 's/X/|/5'
aXbXcXdXe|fXg
Tous uniquement à partir du 4ème :$ echo "aXbXcXdXeXfXg" | sed ':z;s/X/|/4;tz'
aXbXcXd|e|f|g
-