[Shell/Bash] variable dans la commande sed

variable dans la commande sed [Shell/Bash] - Shell/Batch - Programmation

Marsh Posté le 12-05-2008 à 10:40:47    

Bonjour
D'abort quelque exemple de variable :
 
rep1="/home/toto/A/"
rep2="/home/tata/B/"
test="/home/toto/A/tutu/titi"
 
Je souhaiterai remplacer dans la variable "test" la partie correspondante à "rep1" par "rep2" pour obtenir au final : test="/home/tata/B/tutu/titi"
Je pensai utiliser la commande sed mais je n'y arrive pas  :(  
J'ai essayer plusieur truc, en vrac :
test=`echo $test | sed 's/$rep1/$rep2/g'` (aucune modification)
test=`echo $test | sed 's/\$rep1/\$rep2/g'` (aucune modification)

Reply

Marsh Posté le 12-05-2008 à 10:40:47   

Reply

Marsh Posté le 13-05-2008 à 10:06:35    

echo $test | sed s%$rep1%$rep2%


Le truc c'est de faire interpréter $rep1 et $rep2 par le shell (donc soit de ne pas mettre l'expression sed entre quotes, soit de la mettre entre doubles quotes), et d'utiliser s%%% (par exemple) au lieu de s/// puisque que tes regexp contiennent des /.

Reply

Marsh Posté le 15-05-2008 à 09:31:36    

merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed