Как конкатенировать, файлы, найденные находкой, управляют в ударе

Поиск файлов с помощью удара find команда, я хотел бы связать получающиеся файлы в новый файл. Например, если команда находки уступает:

find . -name "configuration_dev.txt"

./tmp/configuration1/configuration_dev.txt
./tmp/configuration2/configuration_dev.txt

Я хотел бы связать содержание этих двух файлов в новый файл непосредственно как команда удара.

4
задан 13 November 2019 в 11:29

3 ответа

Команда для достижения желаемого результата:

find . -name "configuration_dev.txt" -exec cat > testing.txt {} +

Хорошее объяснение вышеупомянутой строки дано здесь: Что означает {} + в находке - исполнительная команда?

4
ответ дан 1 December 2019 в 09:06

Один возможный способ сделать это путем передачи по каналу вывода find кому: xargs и свяжите содержание файлов cat, затем можно перенаправить вывод в новый файл:

find . -name '*file*' | xargs -I{} cat "{}" > output

Вышеупомянутая команда будет звонить cat для каждого файла и затем всего вывода xargs оператор будет перенаправлен к output файл. Более эффективный путь состоит в том, чтобы использовать пустой разделитель - благодаря @pLumo для этого обновления:

find . -name '*file*' -print0 | xargs -0 cat > output
4
ответ дан 1 December 2019 в 09:06

Можно также открыть несколько файлов в cat и перенаправьте вывод в новый файл. Так как названия нескольких файлов были бы возвращены find, можно использовать ту внутреннюю часть cat использование `(обратная галочка):

cat `find . -name "configuration_dev.txt"` > testing.txt

Команда между обратными галочками была бы выполнена и заменена выводом команды, удаляющей запаздывающий символ новой строки и вставляющей пробел.

Можно подтвердить это путем выполнения

A=`find . -name "configuration_dev.txt"`
echo $A

Поскольку Вы найдете, что вывод был бы чем-то как:

./tmp/configuration/configuration_dev.txt ./tmp/configuration/configuration_dev.txt

Таким образом фактическое cat команда под капотом будет:

cat ./tmp/configuration/configuration_dev.txt ./tmp/configuration/configuration_dev.txt > testing.txt
0
ответ дан 1 December 2019 в 09:06

Другие вопросы по тегам:

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