Escape < y > en sed / shell
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.
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