Bah oui, sed est dur mais c'est sed :-(
voilà mon souci :
j'ai un fichier qui contient pleins de truc, dont -entre autres et en pagaille- des lignes de la forme suivante :
$RACINE$repertoire1/binaire1
$RACINE$repertoire2/binaire2
Bon. Dans mon script bash j'ai une variable magiquement nommée RACINE qui contient ce par quoi la chaine '$RACINE$' doit être remplacée pour avoir un chemin cohérent vers binaire 1&2.
Historiquement, ça vient d'un script pour openVMS ; donc à l'époque une simple substitution suffisait (et c'est ce par quoi j'ai commencé -benêt que je suis-) :
sed -ie "s/\$RACINE\\$/${RACINE}/g" fichier
déjà, bon là je comprend pas pourquoi j'ai dû mettre 2 '\' après RACINE, sinon la regex match pas. Mais pire, vu que RACINE contient un truc du genre "~/maindir/pkg1/" le sed m'explose à la figure en me disant "Option inconnue pour 's'".
Ok, jusque là ça parait cohérent : l'expansion de variable me fout la commande sed en l'air, j'accepte.
du coup malin comme pas deux, je change la ligne dans mon script :
sed -ie "s/\$RACINE\\$/${RACINE//\//\\\/}/g" fichier
et ben ça marche pas mieux !!!!
et pourtant :
echo ${RACINE//\//\\\/}
~\/maindir\/pkg1\/
alors, une idée pour remplacer ce foutu '$RACINE$' par le contenu de la variable RACINE ??? ?-(
-------
<br />
La meilleure façon de prédire le futur, c'est de l'inventer ~ Alan Kay
Poste le Tuesday 5 June 2007 15:28:36