GNU/Linux >> Tutoriales Linux >  >> Linux

¿Un Xml sin Lf quiere hacerlo bonito usando el comando Sed en Shell?

Tengo una estructura de un proyecto en mi repositorio de git y me gustaría ejecutar un comando de shell en git bash para reemplazar todo el > con >\n (LF).
Intenté el siguiente comando:

find . -name '*.xml' -exec sh -c 'sed 's/>/>\n/g "$0"' '{}' ';'

lo que significa reemplazar los conjuntos anteriores (> con >\n ) en todos los archivos xml encontrados en mi proyecto.

No sé qué estoy haciendo mal ya que aterrizo en el editor con el cursor “>”…
(simplemente haciéndolo bonito en un editor, por ejemplo, Note++ es fácil con complementos para XMLTools pero quiero que mis archivos se modifiquen para tener en ellos el LF después de cada etiqueta XML)

Cuando escribo el comando solo para un archivo, funciona bien:

$ sed 's/>/>\n/g' MyFile.xml

Respuesta aceptada:

Es una mala idea usar sed para esto, lo que parece hacer es formatear el archivo XML.

Es una tarea simple para cualquier analizador XML, por ejemplo:

xmllint --format file.xml

Esta utilidad suele instalarse de forma predeterminada en GNU Linux o con el paquete libxml2

o

xmlstarlet format file.xml

Linux
  1. Usando múltiples patrones a la vez con el comando Sed

  2. ¿Usar teclas Vi para editar comandos de shell en Unix?

  3. ¿Guardar archivo después de usar el comando Sed?

  4. ¿Archivo duplicado X veces en Command Shell?

  5. Comando de shell para eliminar los caracteres ^M del archivo de texto

Cómo ejecutar el comando Sudo sin contraseña

Uso de Cat Command en Linux con ejemplos

Haz que tu caparazón de pescado sea hermoso con Oh My Fish

Cómo redirigir la salida del comando de shell

Cómo quitar líneas de un archivo usando el comando Sed

Comando make de Linux con ejemplos