Есть каталог с некоторыми папками, такими как а, б, c ...
В каждой папке есть несколько текстовых файлов, содержимое которых мне нужно получить. Я уже пробовал написать сценарий вроде
for i in `ls`;
do
cd $i ;
cat * ;
done
Но не работает (знаю почему, но не знаю, как правильно это делать)





Вы не должны проанализировать вывод ls. Вместо этого используйте команду find, чтобы получить все ваши файлы.
Если вы хотите отобразить содержимое всех обычных файлов в текущем каталоге и всех его подкаталогах, используйте эту команду:
find -type f -exec cat {} \;
Если у вас много подкаталогов, вы можете ограничить уровень глубины с помощью опции -maxdepth.
Есть каталог с некоторыми папками, например а, б, в ... Wrong. Есть каталог, содержащий подкаталоги. В Linux нет "папок". Никогда используйте
for i in $(ls anything), см. Bash ловушки # 1. В зависимости от того, важен ли порядок файлов, вы можете использоватьfindили включитьglobstar.