PB avec un sed pour substitution caractères

Résolu
JsuisNul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   -  
UnGnU Messages postés 1158 Date d'inscription   Statut Contributeur Dernière intervention   -
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



A voir également:

1 réponse

UnGnU Messages postés 1158 Date d'inscription   Statut Contributeur Dernière intervention   158
 
Salut,

Il manque l'option "g" (global) dans ta seconde expression ;-\

sed 's/ \{2,\}//g;s/,/./g'

0
JsuisNul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   1
 
Super !!! c'était bien cela. Du coup, j'ai appris à quoi servait le "g"

Merci beaucoup
0
UnGnU Messages postés 1158 Date d'inscription   Statut Contributeur Dernière intervention   158 > JsuisNul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention  
 
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
0