У меня есть много больших сжатых файлов, называемых xaa.gz, xab.gz, xac.gz и т. Д. К сожалению, они не отсортированы. Я хотел бы сделать эквивалент следующего.Сортировка большого количества сжатых файлов
zcat x*|sort > largefile
split -l 1000000 largefile
Затем gzip разделить файлы и выбросить все другие файлы, сделанные ранее.
Проблема заключается в том, что это массивный несжатый файл, а затем много меньших несжатых разделяемых файлов до их сжатия. Можно ли все это сделать без создания огромного файла в середине процесса и, в идеале, без сохранения разделенных файлов до их сжатия?
У меня есть 8 ядер, поэтому я тоже хотел бы воспользоваться ими (у меня нет coreutils 8.20, поэтому нельзя использовать сортировку --parallel).
Вы хотите отсортировать отдельные файлы или объединить все, отсортировать, разделить? – devnull
Комбинат, сортировка, разделение. Это то, что я не могу понять, как эффективно работать. – Anush
Почему вы заинтересованы в том, чтобы файл был разбит на куски? Не доверяете ли вы файловой системе или нет какой-то неустановленной причины? Знаете ли вы, что процессор 'sort' будет доминирующей ценой в этом, или вы преждевременно оптимизируете, потому что можете? – msw