2016-05-09 8 views
0

Gibt es eine Möglichkeit, $xmllint --format file ohne den Header-Abschnitt zu verwenden?xmllint: Formatieren ohne Header hinzufügen

<?xml version="1.0"?> 
<Tag> 
    <Sub>A</Sub> 
</Tag> 

Ich weiß, Sie --c14n verwenden, aber das scheint nicht mit --format gut zu mischen. Wie $xmllint --format --c14n file wird nur produzieren:

<Tag><Sub>A</Sub></Tag> 

Gewünschtes Ergebnis

<Tag> 
    <Sub>A</Sub> 
</Tag> 

Antwort

1

können Sie sed verwenden, um die erste Zeile zu entfernen. Nicht sagen, es ist das beste, aber es würde erhalten Sie gehen:

xmllint --format <file> | sed 1d 

Sie preferrable eine Million Anrufe würden versuchen, xmllint zu vermeiden. Und sed oder Schwanz.

Ich bin mir nicht sicher, ob xmllint Inplace bearbeiten unterstützt. Aber wenn dies der Fall ist, könnte so etwas möglich sein:

xargs < list_of_files_to_change.txt xmllint --inplace --format 
xargs < list_of_files_to_change.txt sed -i 1d 
+0

Ich hätte wahrscheinlich die Anfrage hinzugefügt, dass das Skript für etwa 1M einzelne Dateien ausgeführt wird. Wäre sed besser als tail -n +2 ?. Entschuldigung, wenn das eine dumme Frage ist. – Overseer10

+0

@ Overseer10 Ich bin mir nicht sicher, ich aktualisierte die Antwort mit mehr Informationen. – andlrc