Sed et ou logique ...

Résolu
Zyclo Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
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,

6 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,
sed 's/toto\|titi/maman/g'
;-))
1
Utilisateur anonyme
 
yop
oui c'est bon
merci
1
Zyclo Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci du tuyau ("sans entree dans le manuel" :-) )

A+
0
Utilisateur anonyme
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
T'as essayé :
sed -e 's/bla/blu/g' -e 's/bli/blu/g' < fichier
???
0