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