В каталоге root, в котором находятся каталоги видов, вы должны выполнить следующее:
$ mkdir output
$ find Species* -type f -name "*.fasta" -exec sh -c 'cat {} >> output/`basename {}`' \;
Он рекурсивно перебирает все файлы и объединяет содержимое файлов с одинаковым базовым именем в один под output directory.
EDIT: , хотя это был принятый ответ, в комментарии OP упоминалось, что настоящие каталоги не соответствуют общему шаблону Species*
, поскольку показано в оригинальном вопросе. В этом случае вы можете использовать это:
$ find -type f -not -path "./output/*" -name "*.fasta" -exec sh -c 'cat {} >> output/`basename {}`' \;
Таким образом, мы не указываем шаблон поиска, а явно опускаем каталог output
, чтобы избежать дублирования уже обработанных данных.