Sed et ou logique ...

Résolu
Zyclo Messages postés 227 Statut Membre -  
 Poulpoul -
Bonjour,

je fais appel à vous pour un petit exercice intellectuel, que je me suis donné ...

il faut que je remplace du texte dans quelques fichiers (Je suis sous AIX). pour cela j utilise la commande sed

Si je trouve toto, je le remplace par maman
si je trouve tata, je le remplace aussi par maman.

je veux bien le faire en 2 fois, mais je cherchais à le faire en 1 ligne de commande .. Z'avez pas une idee ?

(j ai essayé sed s/"titi" | "toto"/maman/g > file1 , ainsi que sed s/"titi" || "toto"/maman/g > file 1 ,amsi ca marche pô !)

Si s'avez un truc,
Configuration: Windows XP
Firefox 2.0.0.17

6 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    sed 's/toto\|titi/maman/g'
    ;-))
    1
  2. Zyclo Messages postés 227 Statut Membre 17
     
    Merci du tuyau ("sans entree dans le manuel" :-) )

    A+
    0
  3. Poulpoul
     
    yop,

    bonjour tous les deux,

    j'ai testé sous AIX et ksh ce petit exercice, mais cela ne semble pas fonctionner ...

    quand je l'éxecute dans vi, j'obtiens ceci

    ex : 0602-071 Il n'existe aucune occurrence du modèle de substitution.

    sinon en ligne de commande basique, cela s'éxecute sans erreur mais aucune substitution n'est effectuée

    je cherche encore ...

    ++
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Il te faut passer par un fichier temporaire pour que les modifications soient prises en compte :
      sed 's/bla/blu/g' < fichier > fichier.tmp && mv -i fichier.tmp fichier
      ;-))
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Poulpoul
     
    là çà fonctionne pour une substitution, bla par blu
    mais pour 2 substitutions bla et bli par blu par exemple, je n'y arrive toujours pas .... même avec un fichier temporaire
    désolé je suis un boulet ...

    ++
    0
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    T'as essayé :
    sed -e 's/bla/blu/g' -e 's/bli/blu/g' < fichier
    ???
    0