Я бы сделал это так, если порядок файлов не имеет значения:
for i in $(find -maxdepth 1 -mindepth 1 -type d)
do
find $i -name '*.txt' -type f -exec cat {} >> $i-list.txt \;
find $i -name '*.txt' -type f -exec rm {} \;
done
Первая находка ищет подкаталоги.
Второй добавляет все содержимое подфайла в файл
Третий удаляет подфайлы.
Это не работает, если есть рекурсивные подкаталоги. Если вы хотите это, удалите '-maxdepth 1'