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