Wie kann ich eine große GZIP-Datei in kleinere GZIP-Dateien aufteilen, ohne sie vorher zu entpacken?

Wie kann ich eine große GZIP-Datei in kleinere GZIP-Dateien aufteilen, ohne sie vorher zu entpacken?

Gibt es eine Möglichkeit, eine große GZIP-Datei ohne Verwendung in kleinere GZIP-Dateien aufzuteilen zcat?

zcat large.bed.gz| split --numeric-suffixes - -b 7M --filter='gzip > $FILE.gz' large.part.

Antwort1

Die Antwort auf Ihre Frage (unter Berücksichtigung des Ziels, Zeit zu sparen, anstatt zcat durch etwas anderes zu ersetzen - was möglich ist) lautetdas ist nicht möglich.

Das Problem besteht darin, dass die komprimierte Ausgabe einer GZIP-Datei je nach Eingabe unterschiedlich lang ist und sich dies nicht leicht vorhersagen lässt. Es gibt also keine offensichtlichen Grenzen für die Aufteilung der Datei.

Ist der von Ihnen empfohlene Befehl auch der tatsächliche Befehl, den Sie verwenden? Wenn ja, funktioniert er nicht, da er die Datei an beliebigen Stellen und nicht an Zeilengrenzen aufteilt. Sie sollten etwas wie „-l XXXXX“ verwenden, wobei XXXXX eine Zeilenanzahl ist, und nicht „-b 7M“, was eine Blockgröße ist.

Sie haben uns nicht genügend Informationen zur Verfügung gestellt, um weitere Problemumgehungen empfehlen zu können, aber wenn Sie Kontrolle darüber haben, wie die GZ-Datei generiert wird, können Sie die Datei möglicherweise gleich bei ihrer Erstellung in Teile aufteilen. Dies kommt recht häufig vor und es gibt viele Strategien, die je nach Erstellungsweise eingesetzt werden können.

verwandte Informationen