Я пытаюсь сделать именно так, как в этом посте и использовал принятый ответ.У меня вопрос, есть ли более быстрая альтернатива?Это буквально работает в течение нескольких часов и по-прежнему создает новые пустые файлы.У меня есть сотни файлов для объединения.Спасибо!
https://unix.stackexchange.com/questions/435794/create-new-concatenated-files-of-same-name-in-multiple-directories
Вот код:
find . -type f -path "*/*/*/*/$name" -exec cat {} + >"New_Dir/$name" done < list_to_concat.txt
Я читал на похожих постах, что цикл может быть быстрее, но не может его получитьработать правильно.Я тестирую с эхо здесь:
for i in */*/*/*/*.txt; do echo find -name $i -exec bash -c cat $i >> "New_Dir/$i"; done
В случае, если это пригодится кому-то еще, кто-нибудь ищет, я научился гораздо более быстрому способу сделать это, используя xargs и ls:
while read -r name do ls */*/*/*/$name.txt | xargs cat > $name.combine done <List_to_combine.txt