mag*_*ger 54 vim search command-line grep sed
我想批量编辑一大堆在grep中返回的文件.(我知道,我应该在sed变得更好).
所以,如果我这样做:
grep -rnI 'xg_icon-*'
Run Code Online (Sandbox Code Playgroud)
如何将所有这些文件传输到vi?
jam*_*san 78
最简单的方法是让grep只返回与模式匹配的文件名(-l而不是-n).在子shell中运行它并将结果提供给Vim.
vim $(grep -rIl 'xg_icon-*' *)
Run Code Online (Sandbox Code Playgroud)
Ben*_*enj 21
一个很好的通用解决方案是使用xargs将stdout从像grep这样的进程转换为参数列表.
一个la:
grep -rIl 'xg_icon-*' | xargs vi
Run Code Online (Sandbox Code Playgroud)
您无需处理grep输出即可完成!这甚至可以让你走右边(使用:help quickfix命令,例如.:cn或:cw).所以,如果你使用bash或zsh:
vim -q <(grep foo *.c)