Pregunta

¿Cómo puedo escapar '<' y '>' personaje en sed.

Tengo algunos archivos xml que necesitan un poco de texto entre las etiquetas para ser reemplazados. ¿Cómo puedo escapar del '>' y '<' personajes.

El problema con > y < es que tiene un significado especial en el shell para redirigir la salida a un archivo. Así que la barra invertida no funciona.

¿Fue útil?

Solución

Ok. Descubrí por mí mismo. Usa comillas.

$ sed -i "s/>foo</>bar</g" file

Otros consejos

Simplemente coloque una barra invertida delante de ellos o enciérrelos entre comillas simples o dobles. Pensándolo bien, creo que su pregunta debe ser más clara. ¿Está intentando usar sed para procesar un archivo XML y desea obtener lo que hay entre una etiqueta? Entonces quieres:

sed -re 's@(<TAG.*?>).*?(</TAG>)@\1hi\2@' test.xml

Escápalos con barra invertida

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top