如何计算grep中短语的出现次数,忽略大小写?

如何计算grep中短语的出现次数,忽略大小写?

我需要搜索nicolas bomber带有 的名字grep。名字也可以NiCoLaS BomBer。我需要运行一个.sh显示该名称出现次数的文件。

我发出的命令是这样的:

grep -i "Nicolas \s*Bomber" annuaire | wc -l

但它不起作用。

有什么建议么?

答案1

grep-o只会输出匹配项,忽略行;wc可以数一下:

grep -io "nicolas bomber" annuaire | wc -l

或者简单地说,

grep -ioc "nicolas bomber" annuaire

-z正如您所评论的,您可以使用选项匹配单词之间的任意数量的空格,

grep -iz "nicolas[[:space:]]*bomber" annuaire | wc -l

man grep

-i, --ignore-case
    Ignore case distinctions in both the PATTERN and the input files.  (-i is specified by POSIX.)    

-o, --only-matching
    Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.

-c, --count
    Suppress  normal  output;  instead  print  a  count  of  matching  lines  for each input file.

或者,如果您想搜索特定文件扩展名中的字符串,例如所有*.txt文件,您可以使用:

grep -R --include='*.txt' -ioc "nicolas bomber" .

相关内容