如何在bash中创建for循环grep

时间:2018-10-04 15:53:21

标签: bash for-loop grep

我正在尝试创建一个for循环,该循环单独计算目录中每个文件中关键字的数量。

例如,如果一个目录有2个文件,我希望for循环表示

foo.txt = found 4 keywords
bar.txt = found 3 keywords

到目前为止,我已经写了以下内容,但是它给出了所有文件的关键字总数,而不是每个单独的文件。

我得到的结果是

7 keywords founds

而不是上面期望的输出

这是我想出的

for i in *; do egrep 'The version is out of date|Fixed in|Identified the following' /path/to/directory* | wc -l ; done

1 个答案:

答案 0 :(得分:1)

只需使用grep的-c计数选项:

grep -c <pattern> /path/to/directory/*

您会得到类似的东西:

bar.txt:2
foo.txt:1

请注意,这将计算匹配的,而不是匹配的单个模式。因此,如果某个模式在一行中出现两次,则只会计数一次。