grep for "fixme" 以及 "fix me" 然后 cat 结果是单个文件

grep for "fixme" as well as "fix me" and then cat results in single file

我想在这里实现两件事:

  1. grep for fixme 以及修复我。
  2. 上面grep的结果应该在一个文件里
  3. 统计fixme数量(包括fixme)

第 1 步我试过了 grep -ir fixme|fix me" src/* 但它没有用。

有没有办法在同一个 grep 命令中完成?

对于第 2 步,我的想法是 grep -ir fixme|fix me" src/* > fixme.log 如果第一步有效。

for 3 是否可以使用单个 grep 命令来完成,它基本上是这样工作的:

grep -ir "fixme|fix me" src/* | wc -l

不是一个好的答案,但这个有效: grep -ir "FIXME" src/* > f1.log ; grep -ir "FIX ME" src/* > f2.log ; cat f1.log f2.log > fixme.log

grep -E -ir "fixme|fix me" src/*

您可以使用 POSIX ERE 正则表达式

grep -E -ir 'fix ?me' src/*

fix ?me 正则表达式匹配 fix,然后是可选的 space,然后是 me。同样可以写成POSIX BRE pattern:

grep -ir 'fix \{0,1\}me' src/*

其中 \{0,1\} 表示 1 或 0 spaces.