如何搜索包含多个单词的行?我想要一个“与”关系。 我想要这些行的总数。
grep -c -E "tok1.*tok2" file
返回0
答案 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”