[Shell] Remplacement de chaine

Résolu
Deeper -  
 Deeper -
Bonjour,

Je souhaiterais tester un fichier ligne par ligne.
Chaque ligne est une requête SQL qui doit absolument contenir un espace après chaque virgule.
Je ne sais pas si SED suffit ou si il faut du awk.
Pour l'instant j'ai ça :
wsdscer161d4:deep:> echo "c,d, e,f,g" | sed 's/,[a-zA-Z0-9]/, /g'
Résultat : c, , e, ,
Et je souhaiterais c, d, e, f, g
Une solution consisterait à remplacer toutes les "," par ", " et de remplacer les deux espaces par un seu ('echo c, d, e, f, g | sed -e "s/ / /"') mais je ne trouve pas ca très propre.

De plus, je ne gère pas les ' et " dans mon exemple.
Si j'ai ," dans ma requête, je suis marron...

Quelqu'un aurait'il une idée ?

Merci d'avance
Deep
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

$ echo "c,d, e,f,g,\"" | sed 's/, */, /g'
c, d, e, f, g, "

$

PS. Il y a un espace après la 1ère virgule et avant l'astérisque dans la syntaxe de "sed"
0
Deeper
 
Merci beaucoup zipe31.
J'y avais pas pensé, et c'était là, devant mes yeux !!!!
0