У меня есть очень большой текстовый файл данных: несколько миллиардов строк, которые в основном в форме:Хорошая стратегия для сжатия линии ориентированных входа на стандартный ввод
On tick 112 total blocks 120
Простой скрипт Perl превращает это в значений, разделенных запятыми то есть, в данном случае:
112,120
я хотел бы сжать вывод Perl на лету, но очевидные подходы например
perl myscript.pl myinputfile.txt | bzip2 > compressedoutput.bz2
вообще не сжимают выход (предположительно потому, что это невозможно сделать по одной линии за раз?)
Есть ли способ обойти это? Очевидно, я могу сгенерировать выходной файл, а затем сжать его, но мне интересно, есть ли один способ командной строки для получения хороших результатов?
много вопросов здесь на S.O. иметь дело с 'unbuffer' и perl-решениями по той же проблеме, поэтому немного оглядитесь на эти термины. Я также хотел бы подтвердить, что сжатие отдельного файла уменьшает размер. Учитывая характер ваших данных, это может быть трудно сделать. Удачи. – shellter