Commande SED

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. Webmaster
    Essaye ceci :

    sed 's/mot1/TEST/g' 070204 > 070204.out
    1. Modérateur
      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
      1. 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 ?