У меня есть повторяющаяся задача разделения ряда большого (приблизительно 1-2 гибибайта, каждый) gzipped файлы журнала Apache в несколько частей (скажите что блоки 500K строк). Заключительные файлы должны быть gzipped снова для ограничения использования диска.
На Linux я обычно делал бы:
zcat biglogfile.gz | split -l500000
Получающиеся файлы файлов назовут xaa, xab, xac, и т.д. Таким образом, я сделаю:
gzip x*
Эффект этого метода состоит в том, что как промежуточный результат эти огромные файлы временно хранятся на диске. Существует ли способ избежать этого промежуточного использования диска?
Могу я (в некотором роде подобный тому, что xargs делает), разделили, передают вывод по каналу посредством команды (как gzip) и повторно сжимают вывод на лету? Или я смотрю в неправильном направлении и являюсь там намного лучшим способом сделать это?
Спасибо.