Ich habe eine Struktur eines Projekts in meinem Git-Repository und möchte einen Shell-Befehl in Git Bash ausführen, um den gesamten >
zu ersetzen mit >\n
(LF).
Ich habe folgenden Befehl ausprobiert:
find . -name '*.xml' -exec sh -c 'sed 's/>/>\n/g "$0"' '{}' ';'
was bedeutet, die obigen Sätze zu ersetzen (>
mit >\n
) in allen in meinem Projekt gefundenen XML-Dateien.
Ich weiß nicht, was ich falsch mache, da ich im Editor mit dem Cursor „>“ lande…
(nur um es in einem Editor hübsch zu machen – z. B. Note++ ist mit Plugins für XMLTools einfach, aber ich möchte, dass meine Dateien geändert werden haben das LF nach jedem XML-Tag)
Wenn ich den Befehl nur für eine Datei schreibe, funktioniert es gut:
$ sed 's/>/>\n/g' MyFile.xml
Akzeptierte Antwort:
Es ist keine gute Idee, sed
zu verwenden Dafür scheinen Sie zu formatieren die XML-Datei.
Es ist eine einfache Aufgabe für jeden XML-Parser, z. B. :
xmllint --format file.xml
Dieses Dienstprogramm wird häufig standardmäßig unter GNU Linux oder mit dem Paket libxml2
installiert
oder
xmlstarlet format file.xml