Более быстрый способ объединения файлов с одинаковыми именами в разных каталогах - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь сделать именно так, как в этом посте и использовал принятый ответ.У меня вопрос, есть ли более быстрая альтернатива?Это буквально работает в течение нескольких часов и по-прежнему создает новые пустые файлы.У меня есть сотни файлов для объединения.Спасибо!

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

1 Ответ

0 голосов
/ 12 ноября 2018

В случае, если это пригодится кому-то еще, кто-нибудь ищет, я научился гораздо более быстрому способу сделать это, используя xargs и ls:

while read -r name
do
ls */*/*/*/$name.txt | xargs cat > $name.combine
done <List_to_combine.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...