grep count搜索多个单词

时间:2011-06-09 18:28:07

标签: bash grep

如何搜索包含多个单词的行?我想要一个“与”关系。 我想要这些行的总数。

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

返回0

3 个答案:

答案 0 :(得分:4)

要专门使用grep,可以使用OR运算符来实现两种可能性:

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

你也可以简单地grep一个令牌,然后将其传递给另一个令牌的重复grep:

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

当你开始介绍很多令牌时,多个greps似乎要快得多。您也可以替换 egrep 命令,这是grep的正则表达式版本...但我出于同样的原因避免使用它:当我向您引入多个术语时,我觉得要花费更长的时间。搜索范围。

答案 1 :(得分:3)

除了grep之外,还有awk:

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

答案 2 :(得分:1)

egrep“tok1”文件| egrep -c“tok2”