【问题标题】:And statement using grep/regular expressionsAnd 使用 grep/正则表达式的语句
【发布时间】:2012-04-18 13:16:03
【问题描述】:

我正在使用 grep 在特定目录中搜​​索文本。我想返回包含 stringA 和 stringB 的文本行。

我知道执行 grep "stringA|stringB" 实际上是一个 OR 语句,有什么我可以做的,也许使用正则表达式,可以让我运行 AND 语句吗?

非常感谢

【问题讨论】:

    标签: regex unix grep


    【解决方案1】:

    如果您不知道项目的顺序,您可以随时使用 | 反转模式

    grep '1st pattern.*2nd pattern|2nd pattern.*1st pattern' foofile
    

    这适用于两个项目,三个或更多肯定会开始减慢速度......

    【讨论】:

      【解决方案2】:

      您可以通过两个 grep 管道:

       ... | grep "stringA" | grep "stringB"
      

      请注意,如果您的模式实际上是固定字符串而不是正则表达式,那么您可以使用 fgrep 而不是 grep

      【讨论】:

        【解决方案3】:
        "stringA.*stringB"
        

        这将在 stringB 之间找到任意数量的任意字符的 stringA

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-18
          • 1970-01-01
          • 2021-04-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多