J'ai une structure de projet dans mon référentiel git et j'aimerais exécuter une commande shell dans git bash pour remplacer tous les >
avec >\n
(LF).
J'ai essayé la commande suivante :
find . -name '*.xml' -exec sh -c 'sed 's/>/>\n/g "$0"' '{}' ';'
signifiant remplacer les ensembles ci-dessus (>
avec >\n
) dans tous les fichiers xml trouvés dans mon projet.
Je ne sais pas ce que je fais de mal depuis que j'atterris dans l'éditeur avec le curseur ">"…
(juste le rendre joli dans un éditeur - par exemple, Note ++ est facile avec les plugins pour XMLTools mais je veux que mes fichiers soient modifiés pour avoir en eux le LF après chaque balise XML)
Lorsque j'écris la commande pour un fichier uniquement, cela fonctionne bien :
$ sed 's/>/>\n/g' MyFile.xml
Réponse acceptée :
C'est une mauvaise idée d'utiliser sed
pour cela, ce que vous semblez faire est de formater le fichier XML.
C'est une tâche simple pour n'importe quel parseur XML, ex :
xmllint --format file.xml
Cet utilitaire est souvent installé par défaut sur GNU Linux, ou avec le package libxml2
ou
xmlstarlet format file.xml