首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >grep :如何着色2个关键词?

grep :如何着色2个关键词?
EN

Ask Ubuntu用户
提问于 2012-12-31 03:03:37
回答 2查看 13K关注 0票数 12

我知道如何使用1命令实现grep 2关键字,但我只能在输出中对其中一个关键字进行着色。这是我的命令:

代码语言:javascript
复制
grep 'keyword1' file.log | grep 'keyword2'

只突出显示keyword2。如何使keyword1同时突出显示?

EN

回答 2

Ask Ubuntu用户

发布于 2012-12-31 03:24:54

grep命令接受一个--color=always选项,因此您可以使用

代码语言:javascript
复制
grep 'keyword1' file.log --color=always | grep 'keyword2'

作为格氏,此命令可能效率低下,但它将查找包含keyword1和keyword2的所有行。如果您想用不同的颜色高亮显示它们,可以使用

代码语言:javascript
复制
grep 'keyword1' file.log --color=always | GREP_COLORS="mt=01;34" grep --color=always 'keyword2'

它将用蓝色突出显示keyword2。mt部件意味着grep将使用此CSI码突出显示匹配的文本,而01;34则表示“普通背景上的粗体蓝色前景”。

票数 16
EN

Ask Ubuntu用户

发布于 2012-12-31 03:07:36

尝试实际的正则表达式,而不是传递到grep的另一个实例,例如:

代码语言:javascript
复制
grep -E "\<foo\>.*\<bar\>" file

不幸的是,这限制于匹配行,其中关键字仅按此顺序匹配。无论如何,在您的问题中使用grep是相当低效的,您应该避免它。对于您的情况,@DanielH的答复可能要简单得多。

对于关键字的“或”匹配,我经常使用:

代码语言:javascript
复制
grep -E "(foo|bar)" file
票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/234543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档