Perl, Unix: самый быстрый способ объединить тысячи маленьких файлов в один файл - PullRequest
0 голосов
/ 26 мая 2011

Какой самый быстрый способ объединить тысячи маленьких файлов в один файл?

спасибо

Ответы [ 3 ]

14 голосов
/ 26 мая 2011

Команда cat прекрасно работает:

cat *someglob* > output.txt

Это имя (сокращение от con cat enate) даже дает свое назначение.

Если ваш аргументсписок слишком длинный (т. е. слишком много файлов соответствует глобусу), вы всегда можете использовать команду find и направить аргументы в xargs.

find . -name \*someglob\* -print0 | xargs -0 cat > output.txt
0 голосов
/ 27 мая 2011

В случае, если это будет более полезно, вот пример того, как вы можете сделать это в командной строке:

cd dir_with_thousand_files
cat *.txt > onebigfile.txt
0 голосов
/ 27 мая 2011

Я уверен, что cat быстрее и проще, но вот версия на Perl, только потому, что вы спросили об этом.

perl -pe1 *.txt > all.txt 

Предоставлено Икегами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...