使用 sed/awk 打印具有匹配模式或另一个匹配模式的行
I need to print lines in a file matching a pattern OR a different pattern using awk or sed. I feel like this is an easy task but I can't seem to find an answer. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
POSIX 方式
编辑
公平地说,我更喜欢 lhf 通过
/pattern1|pattern2/
的方式,因为它需要更少的输入来获得相同的结果。但是,我应该指出,该模板不能用于逻辑与运算,因为您需要使用我的模板,即/pattern1/ && /模式2/
The POSIX way
Edit
To be fair, I like lhf's way better via
/pattern1|pattern2/
since it requires less typing for the same outcome. However, I should point out that this template cannot be used for logical AND operations, for that you need to use my template which is/pattern1/ && /pattern2/
使用:
其中
patt1
和patt2
是模式。如果您希望它们匹配整行,请使用:您可以删除
-r
并添加转义符:以实现 POSIX 合规性。
Use:
where
patt1
andpatt2
are the patterns. If you want them to match the whole line, use:You can drop the
-r
and add escapes:for POSIX compliance.
你为什么不想使用 grep ?
why dont you want to use grep?
awk '/PATT1|PATT2/ { print }'
awk '/PATT1|PATT2/ { print }'