Quiero reemplazar todas las comillas simples en una cadena con dos comillas simples usando sed. Pero cuando la cadena contiene & el comando sed no reemplaza las comillas simples que vienen después de eso. por favor comparte algunas ideas sobre esto.Cómo escapar y al usar sed
5
A
Respuesta
13
No es necesario para escapar nada en la entrada:
$ echo "123 ' foo & b'ar" | sed "s/'/''/g"
123 '' foo & b''ar
Sin embargo, en la parte 'sustitución' del comando s
&
tiene un significado especial: significa 'match'. Es por eso que el comando anterior se puede volver a escribir como:
$ echo "123 ' foo & b'ar" | sed "s/'/&&/g"
123 '' foo & b''ar
escapar de ella con una \
como todo lo demás que necesita ser escapado, si es necesario:
$ echo "123 ' foo & b'ar" | sed "s/'/'\&'/g"
123 '&' foo & b'&'ar
5
Es más fácil de responder si publicas tu código, pero supongo que no estás escapando al ampersand. Cambia &
a \&
si quieres un ampersand literal.
Consulte la sección 3.1.2 de The sed FAQ para una explicación más detallada, si tiene curiosidad.
0
Está funcionando para mí
bash>echo "'This is a string with 'single quote' & '&'" | sed "s/'/''/g"
''This is a string with ''single quote'' & ''&''
Cuestiones relacionadas
- 1. Escapar secuencias de sed correctamente
- 2. ¿Cómo escapar signo más en mac os x (BSD) sed?
- 3. Cómo usar sed en un Makefile
- 4. cómo usar sed de un archivo TCL
- 5. cómo escapar comilla simple al establecer alias
- 6. sed - cómo hacer grupos regex usando sed
- 7. sed + eliminar "#" y líneas vacías con un comando sed
- 8. Usando sed en un archivo MAKE; cómo escapar de las variables?
- 9. ¿Cómo usar sed para eliminar solo las líneas triples vacías?
- 10. ¿Cómo usar SED sin un archivo con un env var?
- 11. cómo usar sed para reemplazar texto en subcarpetas
- 12. Cómo usar sed para eliminar solo las líneas dobles vacías?
- 13. ¿Cómo escapar '$' y '#' en Facelets/EL?
- 14. Cómo escapar de una cadena para usar en Boost Regex
- 15. Cómo escapar% en String.Format?
- 16. Escapar y en una URL
- 17. Bash: ¿Cómo escapar $ @?
- 18. ¿Cómo escapar html?
- 19. ¿Debo escapar caracteres al enviar correos electrónicos?
- 20. Scala: resultado inverso al escapar subrayado con :::
- 21. ¿Por qué sed falla con caracteres internacionales y cómo solucionarlo?
- 22. GNU Makefile y bash - escapar
- 23. ¿Cómo puedo escapar de las barras diagonales inversas en un script sed incrustado en un script bash?
- 24. búsqueda de palabra completa sed y reemplazar
- 25. sed con y en la variable
- 26. Python: ¿usar el subproceso para llamar a sed?
- 27. cómo escapar% en cmd setx?
- 28. regex: ¿cómo escapar barras diagonales inversas y caracteres especiales?
- 29. Escape de comillas al usar SSH
- 30. ¿Cuál es la diferencia entre la sed -e y sed -e
Hey, quiero reemplazar una cadena con '' Y en mi cadena de salida. He intentado '" & "', '\ &', '\\ &', '\\\ &', '" '\ &' "' en función de diferentes respuestas en la web pero nada funciona, ¿alguna sugerencia? – Ava
'\ &' funciona para mí. Por ejemplo, puedo reemplazar todas las instancias de 'amp' con' & 'usando' sed's/amp/\ y/g "'. Si todavía tiene problemas, debe publicar una nueva pregunta con su cadena de entrada y su código. –
Sí lo hace. Estaba usando otro archivo que no tenía el cambio :( – Ava