Commande SED

Romain -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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 ?
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention   63 308
     
    Essaye ceci :

    sed 's/mot1/TEST/g' 070204 > 070204.out
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  3. 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
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    sed 's/\./,/g' 070204 > 070204.out 
    ;-))
    0