Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sed, variables, zsh

2 réponses
Avatar
Rakotomandimby (R12y) Mihamina
Bonjour,

Je suis certain d'avoir deja demander un eu d'aide a ce sujet mais je ne
retrouve pas le fil dans les archives google de ce groupe.

cette ligne me pose souci:

[...]
sed 's/VHOSTLOGFILE/${VLOGDIR}\.www\.${VH}${AL}/g' < $VFILE > ${VFILE}.tmp
[...]

Les variables entre { } sont toutes définies.
Il se trouve que dans le fichier $VFILE, je retrouve bien VHOSTLOGFILE qui
est remplacé, mais par ${VLOGDIR}.www.${VH}${AL} (notez qu'il a zappé
les "\", tant mieux) et non par les valeurs de ces variables.

Moi je voudrais qu'il remplace par les valeurs de VLOGDIR VH et AL, moi...
C'est quoi l'astuce?
--
L'ASPO a pour but de démocratiser l'acces a l'informatique. Une de ses
activité est l'infogerance (http://aspo.rktmb.org/activites/infogerance)
Tél: + 33 2 38 04 26 04 ou + 33 6 33 26 13 14 (France)

2 réponses

Avatar
Nicolas George
R12y wrote in message :
C'est quoi l'astuce?


fooºr
echo '$foo'
echo "$foo"

Accessoirement, il n'y a vraiment aucune raison de mettre de devant les
points là.

Avatar
Jacques L'helgoualc'h
Le 17-02-2005, Rakotomandimby (R12y) Mihamina a écrit :
Bonjour,


bonsoir,

[...]
sed 's/VHOSTLOGFILE/${VLOGDIR}.www.${VH}${AL}/g' < $VFILE > ${VFILE}.tmp
[...]


Comme l'a dit Nicolas, il te faut des doubles quotes autour des
variables. Mais tu n'es pas au bout de tes peines :

$ toto=/var/log
$ echo pasglop | sed "s/pas/${toto}/g"
sed: -e expression n°1, caractère 8: option inconnue pour `s'
$ echo pasglop sed "s/pas/${toto}/g"
pasglop sed s/pas//var/log/g

Si tu n'a pas de virgule dans tes trois variables,

sed "s,VHOSTLOGFILE,${VLOGDIR}.www.${VH}${AL},g"

devrait faire l'affaire.
--
Jacques L'helgoualc'h