Commande SED

Romain -  
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,

j'ai un souci avec ma commade SED. J'utilise la ligne suivante :

sed 's/mot1/TEST/' 070204 > 070204.out

et seul le 1er " mot1" est modifié alors que dans mon fichier 070204 j'ai plusieurs "mot1".

Y'a t il une option au SED pour lui dire de faire tout le fichier et pas seulement le premier mot qu'il rencontre ?
A voir également:

4 réponses

Jean-François Pillou Messages postés 19541 Statut Webmaster 63 278
 
Essaye ceci :


sed 's/mot1/TEST/g' 070204 > 070204.out
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

tu peux faire la modification directement sur le fichier et en même temps faire une copie de sauvegarde en utilisant l'option -i avec un suffixe

sed -i.orig 's/mot1/TEST/g' 070204 

donc le fichier 070204 sera modifier et 070204.orig sera la copie de sauvegarde
0
Romain
 
Merci pour ces réponses, mais en fait je connaissais déjà SED -i ... mais sur le serveur ou j'essaye de faire ma commande il ne connait pas le parametre "-i".

J'ai donc mis le param "g" pour modifier tout mon fichier. J'essaye de remplacer des "." par des virgules, je tape ca :

sed 's/./,/g' 070204 > 070204.out

A partir de mon fichier 070204 j'ai des données du style :
07/02/04;listevaleur;.20;.42;.45
mais avec ma commande SED comme ici ecrite je n'obtiens que des virgules, le reste du texte n'est pas copier dans mon fichier "out". Une idée ?
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,
sed 's/\./,/g' 070204 > 070204.out 
;-))
0