2015-05-08 18 views
0

Grep通常用於顯示包含指定模式匹配的行。 AIX中是否有任何方式顯示搜索的每個文件中模式的匹配總數?也就是說,每一行中的每一個匹配都應該被計數。如何計算AIX上每個文件的正則表達式匹配總數

我試過grep -c pattern filename,但只計算每個匹配行一次,但它包含很多匹配。

+1

不同於論壇的網站,我們不使用的「謝謝」,或者「任何幫助表示讚賞」,或簽名(因此)。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts)。 –

+0

你想要什麼輸出?每一個新的匹配字符串放在一個新的行上?或者是每個匹配行的匹配數?或者只是每個文件的匹配總數? – PJTraill

+0

我只是想每個文件的總匹配數 – Mahahari

回答

0

您需要先匹配模式,然後計算匹配數。

-o開關將產生新行上的每個匹配。

然後只計算總行數。

喜歡的東西:

grep -o pattern filename | wc -l 
+0

您測試過哪個版本的AIX?在7.1上不支持。 – PJTraill

3

尋找3次出現b.在這個文件中:

$ cat file 
a bc d be f 
bg h 

$ awk '{c+=gsub(/b./,"")} END{print c+0}' file 
3 

以上將與任何操作系統的任何awk的工作(當然除了舊,破AWK) 。

2

grep -o foo filename.txt | wc -l