terminal

obiwan67

Membre actif
27 Avril 2003
211
1
bonjour

comment remplacer une chaine de caractère par une autre dans un fichier txt via le terminal

on m'a dit que la fonction "sed" réalisait ca mais le man n'est pas très explicite (a mon gout)

merci
 
bon comme j'ai trouvé la réponse entre temps je vous livre la soluce pour ceux que ca interesse

G5:~/Desktop obiwan$ sed "s/montexte1/montexte2/g" test2.txt > test3.txt
 
ca marche MAIS il faudrait que je case plusieurs "ou"

exemple:

G5:~/Desktop obiwan$ sed "s/montexte1 ou montexte2 ou montexte3/montexte4/g" test2.txt > test3.txt

quelle sont les balises a mettre pour lui dire de prendre un a un les texte entre les premiers / pour lui faire comparer "cette chaine ou cette chaine ou cette chaine" et le remplacer

merci
 
tu peux aussi utiliser l'éditeur de texte pico
 
Le \ avant le pipe sert à "échapper" le pipe : le pipe est le symbole du OU pour sed, mais il est aussi réservé par le shell (dans lequel tourne sed) pour indiquer qu'il faut rediriger la sortie de la commande précédente par la commande suivante. Si on n'échappe pas le pipe par un \, le shell croit qu'il faut qu'il envoie la sortie de ce qu'il y a avant le | vers l'entrée de ce qu'il y a après. Grâce au \, le shell n'interprète pas le | et le passe tel quel (en ayant enlevé le \) comme paramètre à la commande sed.