Используйте результаты команды Find для вызова vi

Есть ли способ, которым я могу передать вывод этой команды (при условии, что найден только один файл) к vi. Я хочу найти эту команду, а затем вызвать ее в vi.

Благодаря.

find . -name 'id.properties'
6
задан 19 June 2013 в 16:44

3 ответа

Вы можете вставить вывод в текстовый файл и открыть его с помощью vi.

find . -name 'id.properties' >> /home/<user>/find.txt
vi /home/<user>/find.txt
0
ответ дан 19 June 2013 в 16:44

Этот ответ кажется наиболее прямым. Для вашего случая это будет:

vim $(find . -name 'id.properties')
0
ответ дан 19 June 2013 в 16:44

Чтобы отредактировать файлы , напечатанные как find:

find . -name 'id.properties' -exec vi {} +

На простом английском языке, это находит пути в текущем каталоге (.) и всех подкаталогах с базой имя id.properties. С этими файлами он запускает команду a vi file1 file2 [...] (-exec vi {} +). Если файлов очень много (как правило, тысячи), он может даже запустить более одной команды vi, в каждой из которых есть набор файлов, чтобы иметь возможность вписать команды в максимальную длину команды вашей системы. Чтобы заставить его запускать команду для каждого файла , вы можете использовать \; вместо +.

Чтобы отредактировать текст , напечатанный find:

find . -name 'id.properties' | vi -

Этот записывает пути (относительно текущего каталога) любых найденных файлов ( потому что по умолчанию find имеет скрытый -print в конце) к своему стандартному выходу, который подключен (|) к стандартному входу vi. vi, в свою очередь, читает из стандартного ввода (-) и показывает, что это файл для редактирования.

0
ответ дан 19 June 2013 в 16:44

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

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