【发布时间】:2013-02-13 12:25:54
【问题描述】:
这是基本的,但我无法用谷歌搜索它。我可以在调用 grep 时使用吗
grep expr1 | grep expr2
让它打印包含 expr1 和 expr2 的行?
【问题讨论】:
这是基本的,但我无法用谷歌搜索它。我可以在调用 grep 时使用吗
grep expr1 | grep expr2
让它打印包含 expr1 和 expr2 的行?
【问题讨论】:
你所拥有的应该可以工作。
以下是实现相同效果的另一种方法:
grep -E 'expr1.*expr2|expr2.*expr1'
【讨论】:
grep (expr1ANDexpr2) :-) 这样的东西。顺便说一句,这是否比调用 grep 两次更快?
试试这个:
grep 'expr1.*expr2\|expr2.*expr1'
如果您知道“expr2”总是在“expr1”之后,那么这比它需要的要复杂一些。在这种情况下,您可以将其简化为:
grep 'expr1.*expr2'
【讨论】:
实际上,如果您想获得包含这两个表达式的行,您自己的建议几乎是正确的。使用:
grep expr1 somefile | grep expr2
【讨论】:
cat somefile | grep expr1 | grep expr2,但我认为我使用哪个软件来传输这些东西并不重要:-)。
grep < somefile expr1 | grep expr2,因为我们正在玩“我可以用多少种方式做同样的事情”的游戏。