【发布时间】:2012-04-18 13:16:03
【问题描述】:
我正在使用 grep 在特定目录中搜索文本。我想返回包含 stringA 和 stringB 的文本行。
我知道执行 grep "stringA|stringB" 实际上是一个 OR 语句,有什么我可以做的,也许使用正则表达式,可以让我运行 AND 语句吗?
非常感谢
【问题讨论】:
我正在使用 grep 在特定目录中搜索文本。我想返回包含 stringA 和 stringB 的文本行。
我知道执行 grep "stringA|stringB" 实际上是一个 OR 语句,有什么我可以做的,也许使用正则表达式,可以让我运行 AND 语句吗?
非常感谢
【问题讨论】:
如果您不知道项目的顺序,您可以随时使用 | 反转模式
grep '1st pattern.*2nd pattern|2nd pattern.*1st pattern' foofile
这适用于两个项目,三个或更多肯定会开始减慢速度......
【讨论】:
您可以通过两个 grep 管道:
... | grep "stringA" | grep "stringB"
请注意,如果您的模式实际上是固定字符串而不是正则表达式,那么您可以使用 fgrep 而不是 grep。
【讨论】:
"stringA.*stringB"
这将在 stringB 之间找到任意数量的任意字符的 stringA
【讨论】: