2011-02-11 54 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的默認行爲。