Je veux utiliser sed
pour changer une barre oblique en barre oblique inverse et une barre oblique, c'est-à-dire /
-> \/
. Mais ça ne marche pas. Voici un petit exemple:
#!/bin/bash
TEST=/etc/hallo
echo $TEST
echo $TEST | sed "s/hallo/bello/g"
echo $TEST | sed "s/\//\\\//g"
La sortie des trois premières lignes est telle que supposée. Mais le dernier ne fonctionne pas. Pourquoi? Comment corriger la dernière partie?
Utilisez des guillemets simples pour l'expression que vous avez utilisée:
sed 's/\//\\\//g'
Entre guillemets, \
a une signification particulière, vous devez donc la contre-obliquer:
sed "s/\//\\\\\//g"
Mais il est plus propre de changer le délimiteur:
sed 's=/=\\/=g'
sed "s=/=\\\/=g"
Essayer:
sed 's/\//\\\//g'
ou en utilisant un autre délimiteur pour vous empêcher d'échapper à la barre oblique:
sed 's,/,\\/,g'