Shell: Datei mit Einrückungen zeilenweise einlesen
Hallo an Experten,
ich habe da eine XML-Datei, also formatiert mit Einrückungen usw.
Diese laufe ich durch, um an einer bestimmte Stelle ein Paar zus. Zeilen einzufügen.
Nur ist es so, dass dabei die Einrückungen verloren gehen.
Wie kann ich denn die Einrückungen beibehalten?
VG
Andre
ich habe da eine XML-Datei, also formatiert mit Einrückungen usw.
Diese laufe ich durch, um an einer bestimmte Stelle ein Paar zus. Zeilen einzufügen.
$ while read line; do echo $line; done < file.xml
Nur ist es so, dass dabei die Einrückungen verloren gehen.
Wie kann ich denn die Einrückungen beibehalten?
VG
Andre
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1533534757
Url: https://administrator.de/forum/shell-datei-mit-einrueckungen-zeilenweise-einlesen-1533534757.html
Ausgedruckt am: 03.01.2025 um 03:01 Uhr
4 Kommentare
Neuester Kommentar
Diese laufe ich durch, um an einer bestimmte Stelle ein Paar zus. Zeilen einzufügen.
XML sollte man besser immer mit Parsern bearbeiten, so stellt man auch sicher das man das DOC nicht ungültig macht.Hier ein Beispiel mittels Bash und php7:
Ausgangs-XML Datei
<?xml version="1.0" encoding="utf-8"?>
<root>
<items>
<item name="Max">
<Alter>22</Alter>
<PLZ>88888</PLZ>
</item>
</items>
</root>
Bash Skript
#!/bin/bash
php7 -r '
$xml = DOMDocument::load("./test.xml");
$xml->formatOutput = true;
$node = (new DOMXpath($xml))->query("/root/items/item");
$newnode = $node->cloneNode(true);
$newnode->setAttribute("name","sepp");
$newnode->getElementsByTagName("Alter")->nodeValue = "55";
$newnode->getElementsByTagName("PLZ")->nodeValue = "22222";
(new DOMXpath($xml))->query("/root/items")->appendChild($newnode);
print_r($xml->saveXML());
'
Ausgabe:
<?xml version="1.0" encoding="utf-8"?>
<root>
<items>
<item name="Max">
<Alter>22</Alter>
<PLZ>88888</PLZ>
</item>
<item name="sepp">
<Alter>55</Alter>
<PLZ>22222</PLZ>
</item>
</items>
</root>
Da wünsche ich dir viel "Glück" .