35

这是基本的,但我无法用谷歌搜索它。我可以在调用 grep 时使用吗

grep expr1 | grep expr2

以便它打印包括 expr1 和 expr2 的行?

4

4 回答 4

45

您可以提供多个表达式以使用多个-e 标志进行搜索。另见这篇文章

IE

grep -e expr1 -e expr2

于 2014-05-09T17:51:49.727 回答
33

尝试这个:

grep 'expr1.*expr2\|expr2.*expr1'

如果您知道“expr2”总是在“expr1”之后,这比它需要的要复杂一些。在这种情况下,您可以将其简化为:

grep 'expr1.*expr2'

于 2013-02-27T15:57:49.910 回答
3

你所拥有的应该工作。

以下是实现相同效果的另一种方法:

grep -E 'expr1.*expr2|expr2.*expr1'
于 2013-02-27T15:57:11.860 回答
1

实际上,如果您想获得包含两个表达式的行,您自己的建议几乎是正确的。利用:

grep expr1 somefile | grep expr2
于 2014-07-07T12:18:07.417 回答