Tengo un directorio lleno de archivos XML que se ven así, para los cuales quiero cambiar el valor del número de elemento de "compensación" de 1 a algún otro número
$ cat my.xml
<offset xmlns="">1</offset>
Escribí varias combinaciones de este comando sed, pero nada de lo que probé se ejecuta sin un error. Estoy bastante seguro de que necesito escapar de algunos de los caracteres, pero los que he probado siempre terminan en errores ("token inesperado", "opción desconocida", etc.). También probé sin la bandera -e, ya que realmente no es una expresión.
sed -i -e s/<offset xmlns="">1</offset>/<offset xmlns="">99</offset>/ *.xml
Cualquier ayuda sería apreciada.
Respuesta aceptada:
Prueba esto,
$ sed 's~<offset xmlns="">1~<offset xmlns="">99~g' file
<offset xmlns="">99</offset>
Use un delimitador sed diferente si la entrada contiene barras.