Задать вопрос
ctornton
@ctornton
Мимо проходил, кому-то помог, сам научился.

Рекурсивный перебор файлов в папках и подпапках и помещение их содержимого в один текстовый файл?

Привет.
Я совсем недавно с Bash работаю, поэтому не пинайте сильно)
Вопрос такой.
Появилась надобность рекурсивно пройти по всем подпапкам директории и содержимое всех файлов поместить в один с указанием текущего расположения и названия.

Пока получается собирать в текущей папке содержимое файлов и помещать в текстовик, вот таким скриптом:

cd /home/myUser/Documents/repos/core/

for f in * ; do echo -E -- "$f" -- && pwd && cat -- "$f" ; done >> name.txt


Но вот как пройти другие подпапки рекурсивно и содержимое их файлов поместить в этот же файл.. не выходит.
Примерно понимаю, что можно for использовать или как-то find применить.
Буду благодарен за советы и помощь)
  • Вопрос задан
  • 11474 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
ctornton
@ctornton Автор вопроса
Мимо проходил, кому-то помог, сам научился.
В итоге сам решил свой вопрос, как и предполагал, использовал find.
Ниже приведу код, вдруг кому пригодится в будущем, у кого подобный вопрос возникнет.

#!/usr/bin/env bash

for file in `find /path/to/your/directory/ -type f -name "*"`
do
   echo -E -- ${file} -- && cat -- ${file} ;
done > /path_to_your_new_file/nameFile.txt


Вот так скрипт пробегает по всем папкам и подпапкам указанной в самом начале директории, берет их содержимое и кладет в файл, который указан в конце, в формате .txt.
Ах да, закончив перечислять содержимое одного файла в нашем новом текстовом файлике, он указывает путь до следующего и его название.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
не совсем понятно что вы хотите
вам нужно объеденить "все содержимое" правильно ли я понимаю что воопрос идет именно о файлах содержащихся в каталогах ? то есть все файлы найдены в данном каталоге и ниже должны отсоединиться ?
Если так то вот
find /tmp/test -type f -exec  cat {} >> /tmp/out.txt \;


Если же вам нужно просто соединить все файлы и директории в один файл с возможностью восстановления каталогов то это умеет tar.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы