递归的进行grep
1.以前用grep命令,有一点很麻烦。就是假如想递归的进行grep的时候,不能使用文件通配符。比如
grep -R?asdf *.cc
这样的命令是不行的,假如cc文件都在子目录中,而当前目录下一个都没有的话,便会提示找不到文件。于是只能这样
grep -R?asdf *
在一大堆结果中找啊找啊。
2.今天我终于受不了了,下了grep的代码打算改掉这个问题。看了五分钟我忽然想到,通配符的处理是shell来展开的,所以grep根本没办法自己来递归的过滤出*.cc,它甚至连*都看不到。
这时就想到,就算可以修改,也不该修改,因为这样破坏了linux的美。正确的用法应该这样。
find . -name *.cc | xargs grep asdf
3 每个命令只做一件事情,并且做好它。每个人只专注于一个方向,并且深入它。
luguo wrote:
find . -iname ‘*.cc’ -exec grep -nH ‘{}’ \;
—-
高手
Posted on 21-十二月-09 at 9:18 pm | Permalink
igh wrote:
jkok
Posted on 05-May-10 at 12:16 am | Permalink