[SH] Modifier un '/' en '\/' ds chaine caract

Résolu/Fermé
ZZ2F3 Messages postés 40 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 30 juin 2009 - 3 juil. 2008 à 11:44
ZZ2F3 Messages postés 40 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 30 juin 2009 - 3 juil. 2008 à 14:30
Bonjour,

J'utilise la fonction sed dans un script que j'ai crée mais j'ai un petit soucis pour gérer les Path. En effet, je voudrais faire quelque chose du genre :

sed -e "s/output = .*/output = $pathSimul\/Temporary_results\/$Configfile /" $pathSimul/Temporary_config_files/$Configfile/tmp$i


Sachant que pathSimul = /home/zz2f3/3July

Cependant j'obtiens une erreur du type : sed: command garbled:

C'est tout à fait logique vu que la commande sed devient :

sed -e "s/output = .*/ouput = /home/zz2f3/3july\/Temporary_results\/$Configfile /" ...


Et donc les '/' sont interprétés comme des délimiteurs des arguments de la fonction.
Serait-il alors possible de lui faire comprendre que ces '/' sont des caractères au même titre que les autres et qu'il ne faut pas qu'il en prenne compte en tant que caractère spécial "/".

J'avais pensé à utiliser un sed -e "s///\/ /" qui remplacerait les / par \/ dans ma variable, quitte à créer une variable spéciale pour la fonction sed. pathSimul2 serait alors \/home\/zz2f3\/3july et conviendrait pour la fonction sed.
Malheureusement le problème est le même et je suis donc bloqué.

J'espère avoir été assez clair avec les '/' délimiteurs et les '/' comme caractère simple.

Merci d'avance pour votre aide.

Bonne journée.
A voir également:

1 réponse

ZZ2F3 Messages postés 40 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 30 juin 2009
3 juil. 2008 à 14:30
Si ca intéresse quelqu'un j'ai la solution à mon propre problème!

Sed permet d'utiliser le délimiteur de son choix. Les commandes suivantes sont équivalentes :

s/foo/bar/
s|foo|bar|
s foo bar



Avec les | par exemple! Plus de problème!

Bonne journée!
0