"intelligenter" Zeilenumbruch (sed?)
Hi, ich hab hier XML-Daten mit einzelnen, für ein Programm zu langen Zeilen, dort ist die Zeilenlänge auf 255 begrenzt, was ich nicht ändern kann. Die Zeilen sehen z.B. so aus: <Besteller name1="Tester" name2="..." ... feldX="4245" /> Ich würde die Zeilen gern so umbrechen, dass sie unter 255 Zeichen lang sind und kein Ausdruck feldX="Inhalt" getrennt wird. Wenn zufällig jemand eine Lösung zu Hand hat, der das oder was Ähnliches schon mal gebraucht hat, bin ich dafür dankbar (weil faul), aber wenn nicht - ich erwarte nicht, dass jemand darüber länger nachdenkt. Ich denke mit sed und ggf. anderen Tools sollte ich das hinbekommen... Ansonsten - schönes WE! -- cu jth
Am 23.06.23 11:28 schrieb Jörg Thümmler:
Hi,
ich hab hier XML-Daten mit einzelnen, für ein Programm zu langen Zeilen, dort ist die Zeilenlänge auf 255 begrenzt, was ich nicht ändern kann. Die Zeilen sehen z.B. so aus:
<Besteller name1="Tester" name2="..." ... feldX="4245" />
Ich würde die Zeilen gern so umbrechen, dass sie unter 255 Zeichen lang sind und kein Ausdruck feldX="Inhalt" getrennt wird.
Wenn zufällig jemand eine Lösung zu Hand hat, der das oder was Ähnliches schon mal gebraucht hat, bin ich dafür dankbar (weil faul), aber wenn nicht - ich erwarte nicht, dass jemand darüber länger nachdenkt. Ich denke mit sed und ggf. anderen Tools sollte ich das hinbekommen...
Ansonsten - schönes WE!
Hallo Jörg, schau Dir mal das tool "xmlstarlet" an. Ich verwende es oft & gern. Vielleicht findest Du eine hilfreiche option Norbert
Am 23.06.23 um 11:42 schrieb Norbert Zawodsky:
Am 23.06.23 11:28 schrieb Jörg Thümmler:
Hi,
ich hab hier XML-Daten mit einzelnen, für ein Programm zu langen Zeilen, dort ist die Zeilenlänge auf 255 begrenzt, was ich nicht ändern kann. Die Zeilen sehen z.B. so aus:
<Besteller name1="Tester" name2="..." ... feldX="4245" />
Ich würde die Zeilen gern so umbrechen, dass sie unter 255 Zeichen lang sind und kein Ausdruck feldX="Inhalt" getrennt wird.
Wenn zufällig jemand eine Lösung zu Hand hat, der das oder was Ähnliches schon mal gebraucht hat, bin ich dafür dankbar (weil faul), aber wenn nicht - ich erwarte nicht, dass jemand darüber länger nachdenkt. Ich denke mit sed und ggf. anderen Tools sollte ich das hinbekommen...
Ansonsten - schönes WE!
Hallo Jörg,
schau Dir mal das tool "xmlstarlet" an. Ich verwende es oft & gern. Vielleicht findest Du eine hilfreiche option
Norbert
Hi, Danke für den Tipp, hatte ich sogar für Validierung anderer XMLs installiert. Wäre eine Möglichkeit, falls sich das mit dem Satzteilen schlecht macht. Im Grunde wäre es sogar sauberer... aber dazu müsste ich im verarbeitenden Programm mehr ändern... je länger ich drüber nachdenke, um so schöner scheint mir der Ansatz... Danke & schönes WE -- cu jth
Am 23.06.23 um 12:44 schrieb Jörg Thümmler:
Am 23.06.23 um 11:42 schrieb Norbert Zawodsky:
Am 23.06.23 11:28 schrieb Jörg Thümmler:
Hi,
ich hab hier XML-Daten mit einzelnen, für ein Programm zu langen Zeilen, dort ist die Zeilenlänge auf 255 begrenzt, was ich nicht ändern kann. Die Zeilen sehen z.B. so aus:
<Besteller name1="Tester" name2="..." ... feldX="4245" />
Ich würde die Zeilen gern so umbrechen, dass sie unter 255 Zeichen lang sind und kein Ausdruck feldX="Inhalt" getrennt wird.
Wenn zufällig jemand eine Lösung zu Hand hat, der das oder was Ähnliches schon mal gebraucht hat, bin ich dafür dankbar (weil faul), aber wenn nicht - ich erwarte nicht, dass jemand darüber länger nachdenkt. Ich denke mit sed und ggf. anderen Tools sollte ich das hinbekommen...
Ansonsten - schönes WE!
Hallo Jörg,
schau Dir mal das tool "xmlstarlet" an. Ich verwende es oft & gern. Vielleicht findest Du eine hilfreiche option
Norbert
Hi,
Danke für den Tipp, hatte ich sogar für Validierung anderer XMLs installiert. Wäre eine Möglichkeit, falls sich das mit dem Satzteilen schlecht macht. Im Grunde wäre es sogar sauberer... aber dazu müsste ich im verarbeitenden Programm mehr ändern... je länger ich drüber nachdenke, um so schöner scheint mir der Ansatz...
Danke & schönes WE
Hallo nochmal, habe bei näherer Betrachtung doch festgestellt, dass xmlstarlet ("xml sel" in diesem Falle) doch ziemlich unflexibel ist. Da muss ich ja alle Felder fest definieren und wie das mit den Attributen ist, ist mir auch nicht so recht aufgegangen... Auf https://stackoverflow.com/questions/45816131/how-to-read-xml-and-write-to-te... habe ich aber ein python-sript gefunden, was die Zerlegung sehr gut erledigt, damit werde ich das Programm plaintext lesen lassen und den vorher mit dem python-script aus dem xml generieren lassen. Das Script beruht auf https://docs.python.org/3/library/pyexpat.html Schönes WE -- cu jth
fold mit der Option, dass es nur an Whitespaces umbricht, geht nicht? Am 23.06.23 um 11:28 schrieb Jörg Thümmler:
Hi,
ich hab hier XML-Daten mit einzelnen, für ein Programm zu langen Zeilen, dort ist die Zeilenlänge auf 255 begrenzt, was ich nicht ändern kann. Die Zeilen sehen z.B. so aus:
<Besteller name1="Tester" name2="..." ... feldX="4245" />
Ich würde die Zeilen gern so umbrechen, dass sie unter 255 Zeichen lang sind und kein Ausdruck feldX="Inhalt" getrennt wird.
Wenn zufällig jemand eine Lösung zu Hand hat, der das oder was Ähnliches schon mal gebraucht hat, bin ich dafür dankbar (weil faul), aber wenn nicht - ich erwarte nicht, dass jemand darüber länger nachdenkt. Ich denke mit sed und ggf. anderen Tools sollte ich das hinbekommen...
Ansonsten - schönes WE!
-- Viele Grüße Michael Behrens
Am 23.06.23 um 14:30 schrieb Michael Behrens:
fold mit der Option, dass es nur an Whitespaces umbricht, geht nicht?
Am 23.06.23 um 11:28 schrieb Jörg Thümmler:
Hi,
ich hab hier XML-Daten mit einzelnen, für ein Programm zu langen Zeilen, dort ist die Zeilenlänge auf 255 begrenzt, was ich nicht ändern kann. Die Zeilen sehen z.B. so aus:
<Besteller name1="Tester" name2="..." ... feldX="4245" />
Ich würde die Zeilen gern so umbrechen, dass sie unter 255 Zeichen lang sind und kein Ausdruck feldX="Inhalt" getrennt wird.
Wenn zufällig jemand eine Lösung zu Hand hat, der das oder was Ähnliches schon mal gebraucht hat, bin ich dafür dankbar (weil faul), aber wenn nicht - ich erwarte nicht, dass jemand darüber länger nachdenkt. Ich denke mit sed und ggf. anderen Tools sollte ich das hinbekommen...
Ansonsten - schönes WE!
Hi, fold hab ich probiert, passte nicht so recht, die Felder haben auch whitespace etc.... aber Danke. -- cu jth
Hi, Eine von sicher vielen Möglichkeiten in awk. BEGIN{MAXLENGTH=255} { for(i=1;i<=NF;i++){ if(i==1){LENGTH=0;printf("\n")} LENGTH=LENGTH+length($i); if(LENGTH<=MAXLENGTH) {printf("%s ", $i) }else{ LENGTH=length($i); printf("\n%s ", $i) } } } END{printf("\n")} Ob es deine Vorgaben abdeckt, bitte selber testen. keine Gewähr ob es passt Gruß und schönes WE On 6/23/23 11:28, Jörg Thümmler wrote:
Hi,
ich hab hier XML-Daten mit einzelnen, für ein Programm zu langen Zeilen, dort ist die Zeilenlänge auf 255 begrenzt, was ich nicht ändern kann. Die Zeilen sehen z.B. so aus:
<Besteller name1="Tester" name2="..." ... feldX="4245" />
Ich würde die Zeilen gern so umbrechen, dass sie unter 255 Zeichen lang sind und kein Ausdruck feldX="Inhalt" getrennt wird.
Wenn zufällig jemand eine Lösung zu Hand hat, der das oder was Ähnliches schon mal gebraucht hat, bin ich dafür dankbar (weil faul), aber wenn nicht - ich erwarte nicht, dass jemand darüber länger nachdenkt. Ich denke mit sed und ggf. anderen Tools sollte ich das hinbekommen...
Ansonsten - schönes WE!
On 23.06.23 11:28, Jörg Thümmler wrote:
ich hab hier XML-Daten mit einzelnen, für ein Programm zu langen Zeilen, dort ist die Zeilenlänge auf 255 begrenzt, was ich nicht ändern kann. Die Zeilen sehen z.B. so aus:
<Besteller name1="Tester" name2="..." ... feldX="4245" />
Ich würde die Zeilen gern so umbrechen, dass sie unter 255 Zeichen lang sind und kein Ausdruck feldX="Inhalt" getrennt wird.
Ich könnte noch den Batik Pretty Printer empfehlen. Eigentlich dient dieser zum Formatieren von SVG-Dateien, aber er funktioniert auch mit Standard-XML. Mit dem Parameter -doc-width kann die maximale Zeilenlänge (Standard: 80) verändert werden. Wenn natürlich ein Parameterwert mehr als 255 Zeichen enthält, dann klappt das mit der maximalen Zeilenlänge nicht. Aber das dürfte auch bei anderen Tools nicht klappen, denn ein Zeilenumbruch im Parameterwert würde den Wert verändern. https://xmlgraphics.apache.org/batik/tools/pretty-printer.html Björn
participants (5)
-
Bjoern Voigt
-
ES_WEB
-
Jörg Thümmler
-
Michael Behrens
-
Norbert Zawodsky