2011-02-11 52 views

回答

15
grep --exclude=*~ 

我相信应该有效。

+1

哦,太棒了!我在shell配置文件中为`grep`别名添加了`--exclude-dir = .svn`。我正在寻求这个解决方案的年龄。谢谢! – ulidtko 2011-02-11 23:57:40

2

你还没有这样说,但我怀疑你是通过目录树进行搜索。

这可能不是最优雅的解决方案,但可以使用'find'的输出。

我经常发现自己递归grepping目录树是这样的:

grep <needle> `find . \(-name '*.cpp' -o -name '*.h' \) -print` 

你当然可以这样做:

grep <needle> `find . \! -name '.??*swp' -print` 
+0

`\\(`和`\\)`做什么? – jrdioko 2011-02-12 00:44:03

+1

你应该重读SO上的降价解析规则:如果它缩进* 4 *空格并且*在它自己之前有一个空行*,它会将其作为一段代码*(真正开始一个段落,因为在消息4空间的开始处不带换行符的缩进块也被视为代码块)。 – ZyX 2011-02-12 13:05:37

8

我发现Ack要更换为我grepping需求下降。无需担心默认排除一堆文件类型或目录。您始终可以设置.ackrc文件以添加更多文件类型或更改ack的默认行为。