Я впевнений, що у когось є наведена нижче потреба, який швидкий спосіб розділити величезний .gz файл за рядком? Основний текстовий файл містить 120 мільйонів рядків. У мене не вистачає дискового простору для того, щоб одразу ж згорнути весь файл, тому мені було цікаво, чи хтось знає сценарій bash / perl або інструмент, який міг би розділити файл (будь то .gz або внутрішній .txt) на 3x 40mn-рядкові файли . тобто називати це так:
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
Можливо, робиться серія цих рішень, або для gunzip -c потрібно буде достатньо місця для розпакування всього файлу (тобто початкової проблеми): gunzip -c greatfile.txt.gz | голова 4000000
Примітка: я не можу отримати додатковий диск.
Спасибі!