Re: cut in Binärdatei / Binärdatei aufspalten
Die Datensaätze in den Binärdateien, um die es geht, haben alle eine feste Länge, sagen wir mal 8700 Bytes. Der gesamte Datenbestand umfasst 38000 Sätze, so dass die Datei insgesamt 330.600.000 Bytes groß ist. Ich möchte jetzt aus dieser Datei die Bytes 1 bis 1000, 3000 bis 3500 und 8500 bis 8700 ausschneiden und damit einen neuen Datensatz mit der Länge 1700 Bytes erzeugen. Die gesamte Datei hätte dann die Größe 64.600.000 Bytes. Es geht ganz einfach mit dd: z.B.: dd bs=1 if=inputdatei of=outputdatei skip=2999 count=500 Du müßtest dann mit den Indizes ein bischen rechnen in einem Script mit let ... Die einzelnen Outputdateien mit cat zusammenkopieren
Gruß Jörg
Hi, danke für die Antwort, wenn ich es richtig sehe, ist das Problem bei deinem Vorschlag, dass ich die Originaldatei so oft mit dd bearbeiten muss, wie ich Teile ausschneiden will. Also, wenn ich wie in meinem Beispiel, drei nicht zusammenhängende Teile ausschneiden will, muss ich die Datei drei mal einlesen. Die Binärdateien, die ich bearbeiten muss, sind aber zum Teil 1 GByte groß, da wäre es nicht so gut, diese mehr als einmal einzulesen. Oder hast du deinen Vorschlag anders gemeint und ich übersehe da gerade etwas? Ich denke, dass die Vorschläge von den anderen mit Perl momentan besser geeignet sind. -- Mit freundlichen Grüßen Jens Grüntjes Zitat von joerg.kositza@thyssenkrupp.com:
Es geht ganz einfach mit dd: z.B.: dd bs=1 if=inputdatei of=outputdatei skip=2999 count=500 Du müßtest dann mit den Indizes ein bischen rechnen in einem Script mit let ... Die einzelnen Outputdateien mit cat zusammenkopieren
Gruß
Jörg
participants (2)
-
Jens Gruentjes
-
joerg.kositza@thyssenkrupp.com