2013-02-04 60 views
2

我在Windows服務器上,並且已經安裝了grep命令雙贏的模式。我需要計算匹配(或不匹配)特定模式的文件名的數量。我並不需要列出所有的文件名,我只需要總共有多少匹配。我將要搜索的樹結構相當大,所以我想盡可能地保留儘可能多的處理。計數文件的匹配使用grep

我不是很熟悉的grep,但它看起來像我可以使用-l選項來搜索匹配給定模式的文件名。因此,例如,我可以用

$grep -l -r this *.doc* 

搜索在當前文件夾中的所有MS Word文件和所有子文件夾。然後這將返回給我所有這些文件的列表。我不希望上市,我只是想要找到它的數量。這可能與GREP ...或其他工具?

謝謝!

+0

「grep」可以是一個通用名稱;如果你確切說出了這個工具的哪個版本,這將有所幫助。 – Bryan

+0

絕對:grep 2.5.4 for windows – user2040918

+0

我剛剛發現了一些關於-c選項的內容:「您可以將-c選項傳遞給grep命令來抑制正常輸出並顯示每個輸入文件的匹配行數。」這個選項也適用於搜索文件名嗎? – user2040918

回答

4

在Linux上,你會使用

grep -l -r this .doc | wc -l 

拿到打印的行

的數量雖然-r .DOC不會搜索所有字的文件,你可以使用--include「*文檔」。

而且如果你沒有廁所嗎,你可以再次使用grep,計算匹配的數量:

grep -l -r --include "*doc" this . | grep -c . 
+0

謝謝。但是這個解決方案(據我瞭解)將把所有文件名(符合該模式)寫入文件。我想避免將所有匹配文件寫入文件,只需記下計數。 – user2040918

+0

不,它會打印到標準輸出(即保存在內存中),然後只打印計數 – BeniBela

+0

好的謝謝,我會給它一個去 – user2040918