2011-07-19 7 views

Répondre

60

Essayez ceci:

website=$(sed 's|/|\\/|g' <<< $website) 

Bash soutient en fait ce genre de remplacement natively:

${parameter/pattern/string} - remplacer le premier match de pattern avec string. - remplacer toutes les concordances de pattern par string.

Par conséquent, vous pouvez faire:

website=${website//\//\\/} 
+0

la version native n'a pas fonctionné pour moi avec un grand contenu variable 'commande à long:' – Artistan

8
echo $website | sed 's/\//\\\//g' 

ou, pour une meilleure lisibilité:

echo $website | sed 's|/|\\/|g' 
+0

cela fonctionne bien aussi. Est-ce que cela vous dérangerait d'expliquer cela?/\ // \\\ // g ' et ce |/| \\/| g' ?? –

+1

'searchreplacecommand | source | target | global (toutes les correspondances)' où vous pouvez utiliser n'importe quel caractère comme séparateur ('|'). traditionnellement '/' est utilisé pour un séparateur –

+0

cependant quand j'utilise "" et variable. ça n'introduit rien. Pouvez-vous comprendre la raison? merci –

Questions connexes