GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ein XML ohne Lf Möchten Sie es mit dem Sed-Befehl in der Shell hübsch machen?

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

Linux
  1. So konvertieren Sie eine PPK-Datei in eine PEM-Datei mit Command

  2. Wie lösche ich die ersten N Zeilen einer ASCII-Datei mit Shell-Befehlen?

  3. Doppelte Datei x Mal in der Befehlsshell?

  4. 10 Sed (Stream Editor)-Befehlsbeispiele

  5. sed-Befehlsbeispiele unter Linux

So führen Sie den Sudo-Befehl ohne Passwort aus

Verwenden des Cat-Befehls unter Linux mit Beispielen

Machen Sie Ihre Fischschale schön mit Oh My Fish

So leiten Sie die Shell-Befehlsausgabe um

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

Linux-make-Befehl mit Beispielen