2011-07-19 21 views

Respuesta

60

Prueba esto:

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

Bash realmente apoya este tipo de reemplazo natively:

${parameter/pattern/string} - reemplazar el primer partido de pattern con string.
${parameter//pattern/string} - reemplace todas las coincidencias de pattern con string.

Por lo tanto usted puede hacer:

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

la versión nativa no funcionaba para mí con gran contenido de la variable 'comando para larga:' – Artistan

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

o, para una mejor legibilidad:

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

también funciona bien. ¿Te importaría explicar esto?/\ // \\\ // g ' y esto es |/| \\/| g' ?? –

+1

'searchreplacecommand | source | target | global (todas las coincidencias)' donde puede usar cualquier carácter como separador ('|'). tradicionalmente '/' se usa para un separador –

+0

, sin embargo, cuando uso "" y variable. no inserta nada ¿Puedes descubrir la razón? gracias –

Cuestiones relacionadas