使用grep计算文本文件中所有出现的字符串,但使用多个搜索字符串

时间:2014-10-21 13:36:48

标签: regex string bash unix

我使用以下代码使用grep进行搜索。如果我只使用1个搜索字符串,它可以工作,但如果有多个搜索字符串,这就是我正在做的,它不会

使用1种搜索模式

grep -o <search string> * | wc -l

使用多种搜索模式

grep -o '<search string>\|<search string>\|<search string>\|' *| wc -l

有什么我错过的吗?

2 个答案:

答案 0 :(得分:0)

  • 你的正则表达式似乎是错误的,因为它以一个管道结束,即|
  • 您不需要wc -l,因为您也可以使用grep -c

您可以使用:

grep -co 'string1\|string2\|string3' *

答案 1 :(得分:0)

你有一个尾随|搜索字符串中的符号。

尝试更改:

grep -o '<search string>\|<search string>\|<search string>\|' *| wc -l

grep -o '<search string>\|<search string>\|<search string>\' *| wc -l