So greifen Sie auf einen beliebigen Teil einer Datei unter Unix / Linux zu [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Wie extrahiere ich einen einzelnen Teil von Bytes aus einer Datei? 4 Antworten

Ich versuche, einen Block aus einer Binärdatei in eine neue Datei zu kopieren. Ich habe den Byte-Versatz und die Länge des Blocks, den ich erfassen möchte.

Ich habe versucht mit derdd Dies scheint jedoch die Daten bis zum Versatz zu lesen und zu verwerfen, anstatt nur zu suchen (ich vermute, weil dd zum Kopieren / Konvertieren von Datenblöcken dient). Das macht es ziemlich langsam (und langsamer, je höher der Versatz ist. Dies ist der Befehl, den ich ausprobiert habe:

dd if=inputfile ibs=1 skip=$offset count=$datalength of=outputfile

Ich denke, ich könnte ein kleines Perl / Python / Was auch immer-Skript schreiben, um die Datei zu öffnen, nach dem Offset zu suchen und dann die erforderliche Datenmenge in Chunks zu lesen und zu schreiben.

Gibt es ein Dienstprogramm, das so etwas unterstützt?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage