Ich bin sicher, dass jemand die folgenden Anforderungen hatte. Was ist ein schneller Weg, um eine riesige .gz-Datei zeilenweise aufzuteilen? Die zugrunde liegende Textdatei enthält 120 Millionen Zeilen. Ich habe nicht genügend Speicherplatz, um die gesamte Datei auf einmal zu komprimieren. Ich habe mich gefragt, ob jemand ein Bash / Perl-Skript oder -Tool kennt, mit dem die Datei (entweder die .gz-Datei oder die innere .txt-Datei) in 3x 40mn-Zeilendateien aufgeteilt werden kann . zB wie es heißt:
bash splitter.sh hugefile.txt.gz 4000000 1
would get lines 1 to 40 mn
bash splitter.sh hugefile.txt.gz 4000000 2
would get lines 40mn to 80 mn
bash splitter.sh hugefile.txt.gz 4000000 3
would get lines 80mn to 120 mn
Ist es vielleicht eine Lösung, eine Reihe dieser Probleme zu lösen, oder würde das gunzip -c genügend Speicherplatz benötigen, um die gesamte Datei zu entpacken (dh das ursprüngliche Problem): gunzip -c hugefile.txt.gz | Kopf 4000000
Hinweis: Ich kann keine zusätzliche Festplatte beschaffen.
Vielen Dank!