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