Esto se debe a la regla de análisis de cadenas de comillas dobles de sh
.
Posix especifica cómo sh
analiza las comillas dobles.
La barra invertida conservará su significado especial como un carácter de escape (véase el carácter de escape (barra invertida)) sólo cuando seguido por uno de los siguientes caracteres cuando se considera especial: $ `" \
En es decir, sh
deja la barra invertida seguida de caracteres que no sean $ '".
Por lo tanto, si sh
cumple la cadena de comillas dobles sed "s/\\\/\//"
, sh
lo analiza de la siguiente manera.
- Los primeros dos
\\
se cambian en \
. Debido a que el primer \
es seguido por el segundo \
.
- El tercero y el cuarto
\
aún quedan en la cadena. Debido a que ambos son seguidos por /
, que no es especial en la cadena de comillas dobles.
Después pasring, sh
pasa la cadena s/\\/\//
-sed
, que sustituye la primera ocurrencia de \
en /
.
Con mismo razonamiento, cuando sh
cumple con la cadena, "sed s/\\\\/\//"
, sh
pasa /\\/\//
-sed
, que también sustituye la primera ocurrencia de \
en /
.
muestra lo que tienes – ghostdog74
No es así. Muéstranos por qué crees que lo hace. –
¿Su caparazón consume un nivel extra de backslashing? – p00ya