Объединить все файлы из дерева каталогов

У меня есть каталог / home / foobar /, который содержит множество текстовых файлов в многочисленных подкаталогах. Мне нужно создать файл, который имеет объединенное содержимое всех файлов внутри этой структуры каталогов.

Порядок, в котором файлы объединяются, не имеет значения. Я могу сначала скопировать все файлы в один каталог, а затем объединить, но в этом случае решение должно учитывать, что файлы не имеют уникальных имен.

2
задан 2 June 2015 в 04:20

2 ответа

Это - простая задача для find и cat:

 find <path_to_files> -type f -print0 | xargs -0 -I {} cat {} >> merged

содержание всех файлов в <path_to_files> и во всех подпапках будет добавлено к merged . Поэтому удалите merged для каждого нового выполнения команды.

0
ответ дан 2 June 2015 в 04:20

Это должно работать (замена path/to/dir с путем к базовому каталогу):

for i in $(find /path/to/dir -type "f" ); do cat "$i">>OUTPUT.txt;done
0
ответ дан 2 June 2015 в 04:20

Другие вопросы по тегам:

Похожие вопросы: