Je suis sûr que quelqu'un a eu le besoin ci-dessous, quel est un moyen rapide de diviser un énorme fichier .gz par ligne? Le fichier texte sous-jacent comporte 120 millions de lignes. Je n'ai pas assez d'espace disque pour compresser le fichier en entier à la fois, donc je me demandais si quelqu'un connaissait un script ou un outil bash / perl qui pourrait diviser le fichier (soit le .gz ou le .txt interne) en 3 fichiers de ligne de 40mn . c'est-à-dire l'appeler comme:
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
Peut-être qu'une série de ces solutions est une solution ou le gunzip -c nécessiterait-il suffisamment d'espace pour que le fichier entier soit décompressé (c'est-à-dire le problème d'origine): gunzip -c énormefichier.txt.gz | tête 4000000
Remarque: je ne peux pas obtenir de disque supplémentaire.
Merci!