sed, die zweite

13/08/2008 - 11:07 von Stefan+Usenet | Report spam
Wo wir gerade bei sed sind. Ich habe da eine 500 MB grosse XML-Datei,
die (dem Ersteller sei dank) ohne jedes Newline, als als eine einzige,
lange Zeile abgefasst ist. Das waere egal, gaebe mir jetzt nicht der
zugehoerige Parser die Fehlermeldung "foobar fehlt in Zeile 1" aus.

Als Weg zur Selbsthilfe habe ich nun

$ sed -e "s/></></g" file.xml > file2.xml

versucht, was die Sache moeglichst rasch und unkompliziert erledigen
sollte, ohne Schaden anzurichten. Tut aber nicht, sed werkt nun schon
seit Stunden an der Datei herum. Mein Verdacht: zeilenorientierte
Verarbeitung, und die Zeile ist halt etwas zu lang...

Kann ich den gewuenschten Effekt auch anders, _schneller_ erzielen?
Optisch oder logisch ansprechende Trennung ist voellig unnoetig, eine
schadensfreie Aufteilung in halbwegs ueberblickbare Zeilen reicht mir
vollkommen aus.

Servus,
Stefan

http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich

Stefan - niemand blutet brutaler geschweige denn gigantischer.
(Sloganizer)
 

Lesen sie die antworten

#1 Alexander Bartolich
13/08/2008 - 12:09 | Warnen spam
Stefan Froehlich schrieb:
[...]
Als Weg zur Selbsthilfe habe ich nun

$ sed -e "s/></></g" file.xml > file2.xml



sed arbeitet zeilenorientiert und versucht bearbeitet in diesem Fall
die Datei als ganzes. Was du willst geht bei den klassischen Werk-
zeugen nur mit tr.

tr '>' '' < file.xml | sed 's/$/>/' > file2.xml

Allerdings wird das XML dabei semantisch veràndert. Aus

<p>hallo</p><p>berta</p>

wird nàmlich

<p>
huhu</p>
<p>
berta</p>

Ähnliche fragen