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