Le 09/12/06, gegetel a écrit : > Dans un fichier texte quelconque, il est possible avec sed de > remplacer une chaîne de caractères par une autre, voire une > expression rationnelle par une chaîne de caractères. Par exemple : > sed -i 's/\/mnt.*\/sauv/\/mnt\/removable-3\/sauv/' fichier > remplacera dans fichier l'unique chaîne de caractères « > /mnt/chemin_quelconque/sauv » par « /mnt/removable-3/sauv ». > Mais comment mettre dans la partie droite une chaîne récupérée avec > grep et awk dans un autre fichier et contenue dans une variable ? > J'ai fait des essais avec toutes sortes de parenthèses et > d'apostrophes à partir de : sed -i 's/\/mnt.*\/sauv/$path\/sauv/' > fichier mais sed ne fait que recopier littéralement « $path/sauv ». > Et d'après le manuel je crois comprendre que sed ne fait jamais > d'interprétation dans la partie droite. > Comment faire ?
)$ cat a.txt oh du texte /mnt/blabla/sauv foo et bar sont dans un bateau )$ cat toto.sh #!/bin/bash fich_in=a.txt rep=removable sed "s;/mnt/.*/sauv;/mnt/$rep/sauv;" "$fich_in" )$ ./toto.sh oh du texte /mnt/removable/sauv foo et bar sont dans un bateau Sous réserve de corrections par Jipe ;-) -- Christophe http://ch4tn01r.free.fr/blog
========================================= Vous souhaitez acquerir votre pack ou des services Mandriva? Rendez-vous sur "http://store.mandriva.com". Rejoignez le club Mandriva : http://club.mandriva.com =========================================