$ 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
正如 Ignacio 所暗示的,你可以重新编写 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。