2011-06-09 90 views
1

如何搜索包含多個單詞的行?我想要一個「AND」關係。 我想要這些行的總數。grep count搜索多個單詞

 
grep -c -E "tok1.*tok2" file 

返回0

+1

請提供一個輸入文件的一個例子。 – 2011-06-09 18:31:45

+0

所以你想要包含tok1和tok2的行數? – matchew 2011-06-09 18:31:59

回答

1

egrep的 「tok1」 文件| egrep的-c「tok2」

4

要明確使用grep,您可以使用OR運算符允許兩種可能性:

grep -c -E "(.*tok1.*tok2.*|.*tok2.*tok1.*)" file 

你也可以簡單地用grep一個令牌,然後通過管道,要重複grep for another token:

grep "tok1" file | grep -c "tok2" 

當您開始引入大量令牌時,多個greps似乎會快得多。您也可以替換egrep命令,這是一個grep的正則表達式版本...但我避免出於同樣的原因:在您將多個術語引入搜索時,在我看來,要花費更長的時間。

3

此外到grep,有AWK:

awk '/tok1/ && /tok2/ {count++} END {print count}' file