【问题标题】:grep for "fixme" as well as "fix me" and then cat results in single filegrep "fixme" 和 "fix me" 然后 cat 生成单个文件
【发布时间】:2020-05-10 19:46:19
【问题描述】:

我想在这里实现两件事:

  1. grep for fixme 以及 fix me。
  2. 上述 grep 的结果应该在一个文件中
  3. 计算 fixme 的数量(包括 fix me)

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

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

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

对于 3,它可以使用单个 grep 命令完成吗?它基本上是这样工作的:

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

【问题讨论】:

    标签: linux search grep cat


    【解决方案1】:

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

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

    fix ?me 正则表达式匹配 fix,然后是可选空格,然后是 me。 POSIX BRE 模式也可以这样写:

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

    其中 \{0,1\} 表示1 或0 个空格

    【讨论】:

      【解决方案2】:
      grep -E -ir "fixme|fix me" src/*
      

      【讨论】:

        【解决方案3】:

        不是一个好的答案,但这有效: 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/* | wc -l 不一定等于grep -ir "FIXME" src/* > f1.log ; grep -ir "FIX ME" src/* > f2.log ; cat f1.log f2.log > fixme.log; wc -l fixme.log
        猜你喜欢
        • 1970-01-01
        • 2014-12-26
        • 2016-12-26
        • 1970-01-01
        • 2016-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-22
        相关资源
        最近更新 更多