Как передать сотни файлов из нескольких подкаталогов в кошку? - PullRequest
3 голосов
/ 06 декабря 2011

У меня есть каталог, полный подкаталогов, и в каждом подкаталоге есть несколько текстовых файлов (т. Е. Глубина равна 1).

Я бы хотел объединить все эти файлы (в произвольном порядке) в один файл:

cat file1 file2.... fileN >new.txt

Есть ли в командной строке bash оболочка, которая могла бы перечислить все файлы внутри этих каталогов и передать их в cat?

Ответы [ 2 ]

6 голосов
/ 06 декабря 2011

Как насчет этого?

find . -name '*.txt' -exec cat {} \; > concatenated.txt

Конечно, он вызывает кошку несколько раз, а не один раз, но эффект тот же.

5 голосов
/ 06 декабря 2011
find . -type f -print0 | xargs -0 cat

find будет рекурсивно искать файлы (-type f) и печатать их имена в виде строк с нулевым символом в конце (-print0).

xargs будет читать строки с нулевым символом в конце (-0) из стандартного ввода и передайте их в качестве аргументов cat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...