Sed variable

Résolu/Fermé
eric0279 Messages postés 3 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016 - Modifié par eric0279 le 8/03/2016 à 00:47
eric0279 Messages postés 3 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016 - 8 mars 2016 à 09:20
Bonjour,

j'ai une variable: WEB="/var/www"

seulement avec sed, il ne modifie pas le fichier après multiples tentatives, soit une erreur de regex soit aucune erreur mais rien dans le fichier...

Ligne d'origine:
sed -i "s/#htmldir[[:blank:]]\/var\/cache\/munin\/www/htmldir \/var\/www\/munin/g;" /etc/munin/munin.conf


J'ai essayé avec des substitutions :, % mais aucun effet... quel est mon erreur vu que ça ne fonctionne pas ?

edit: ce n'est pas très propre mais pour le moment j'efface la ligne et je l'insère:
sed -i '9d' /etc/munin/munin.conf && sed -i "9ihtmldir $WEB\/munin" /etc/munin/munin.conf


Cordialement,

5 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
8 mars 2016 à 02:56
Rien pigé!
Que sont sensés faire ta substitution ou ton filtre en général. Explique cela clairement.
0
eric0279 Messages postés 3 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016
8 mars 2016 à 03:15
Je voudrais passer
\/var\/www\/munin/
en variable dans cette ligne:
sed -i "s/#htmldir[[:blank:]]\/var\/cache\/munin\/www/htmldir \/var\/www\/munin/g;" /etc/munin/munin.conf
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 8/03/2016 à 04:11
Inspire-toi de ceci peut-être:
johand@bata:~/tmp$ cat brol.txt 
/plop/var/cache/apt
/plop/var/cache/apt/pkgcache.bin
/plop/var/cache/apt/apt-file
/plop/var/cache/apt/archives
/plop/var/cache/apt/srcpkgcache.bin
johand@bata:~/tmp$ REP='/var/'
johand@bata:~/tmp$ sed -e "s#${REP}#/NOUVEAU/#g" brol.txt
/plop/NOUVEAU/cache/apt
/plop/NOUVEAU/cache/apt/pkgcache.bin
/plop/NOUVEAU/cache/apt/apt-file
/plop/NOUVEAU/cache/apt/archives
/plop/NOUVEAU/cache/apt/srcpkgcache.bin


Notons l'utilisation des guillemets doubles afin de permettre l'évaluation de ${REP} par le shell.

Gates gave ^W  sold  you the windows.
GNU gave us the whole house.(Alexandrin)
0
Salut,
edit: ce n'est pas très propre mais pour le moment j'efface la ligne et je l'insère:
sed -i '9d' /etc/munin/munin.conf && sed -i "9ihtmldir $WEB\/munin" /etc/munin/munin.conf
Alors dans ce cas au lieu de "i" (insertion), utiliser "c" (changement) :

$ cat fich
#htmldir /var/cache/munin/www
#htmldir  /var/cache/munin/www
#htmldir   /var/cache/munin/www
#htmldir     /var/cache/munin/www

$ var="/var/www/munin/"

$ sed "3chtmldir ${var}" fich
#htmldir /var/cache/munin/www
#htmldir  /var/cache/munin/www
htmldir /var/www/munin/
#htmldir     /var/cache/munin/www
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eric0279 Messages postés 3 Date d'inscription lundi 7 mars 2016 Statut Membre Dernière intervention 8 mars 2016
8 mars 2016 à 09:20
Merci UnGars, ça fonctionne et c'était devant moi...
0