Sed et variable dossier/path (slash)

Résolu/Fermé
Antoinebe - 21 oct. 2011 à 20:42
 Antoinebe - 23 oct. 2011 à 02:35
Bonjour,

Je me permet de venir par ici concernant une requête assez simple mais qui me prend la tête ^^'

Voilà, j'aimerais supprimer une ligne dans mon fstab, et j'aimerais que cette ligne corresponde à une variable contenant la direction d'un dossier.

Cependant j'utilise sed et les slash du dossier me posent problème :x

J'ai tenté pas mal de chose, avec tr ou autre, mais je galère trop et donc je me décide à venir vers vous :)

Exemple de ce que j'ai commencé :

sed -i.old '/\/home\/blabla\/ici\//d' /etc/fstab

=> Ceci fonctionne, mais vue que j'inclus une variable je ne peut pas escape manuellement les slash
dossier=/home/blabla/ici/
sed -i.old '/$dossier/d' /etc/fstab

=> Ceci ne fonctionne pas car les slash de dossier bloque sed

J'ai donc tenté en changeant les délimiters, mais là, pof plus rien ...
sed -i.old '#$dossier#d' /etc/fstab


Je me suis tourner vers transformation des slash par slash avec antislash précédemment, mais je n'arrive pas à déclarer mon résultat de tr en variable utilisable dans le sed, ou bien je n'arrive pas à enchaîner le tr puis le sed ^^'

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
21 oct. 2011 à 22:35
Salut,

Il faut changer le délimiteur de motif par défaut et mettre des quotes doubles autour de l'expression :

dossier=/home/blabla/ici/

sed -i.old "\#$dossier#d" /etc/fstab
2
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
21 oct. 2011 à 22:57
Plus d'info dans la FAQ : Délimiteur de motif
0
Merci bien zipe31 :)

C'était pas compliqué, mais encore fallait il ne pas faire de bêtise ^^'
0