$ grep -l -R "myEditor_Init" *
Public/Js/eWebEditor/dialog/ewebeditor.htm
Public/Js/eWebEditor/ewebeditor.htm
Public/Js/eWebEditor/js/ewebeditor.js

Например, я хотел бы grep и vim третий файл с помощью одной команды, как я могу это сделать?

Благодарю.

1 ответ1

3

Как предполагает Игнасио, вы можете заново выполнить команду grep, чтобы получить только один файл, который вы хотите, например:

$ grep -l -R --include="*.js" "myEditor_Init" *
Public/Js/eWebEditor/js/ewebeditor.js

В таком случае вы можете отредактировать его с помощью, например (используйте обратные галочки, чтобы предоставить результат в качестве аргумента vim:

$ vim `grep -l -R --include="*.js" "myEditor_Init" *`

Если вы действительно хотите использовать * вместо того, чтобы ограничивать файлы * .js, вы все равно можете сделать:

$ vim `grep -l -R "myEditor_Init" * | tail -1`

Я часто обнаруживаю (используя csh или bash) что-то вроде следующего:

$ grep -l -R --include="*.js" "myEditor_Init" *
Public/Js/eWebEditor/js/ewebeditor.js
$ vim `!!`

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .