我知道如何使用1命令实现grep 2关键字,但我只能在输出中对其中一个关键字进行着色。这是我的命令:
grep 'keyword1' file.log | grep 'keyword2'只突出显示keyword2。如何使keyword1同时突出显示?
发布于 2012-12-31 03:24:54
grep命令接受一个--color=always选项,因此您可以使用
grep 'keyword1' file.log --color=always | grep 'keyword2'作为格氏,此命令可能效率低下,但它将查找包含keyword1和keyword2的所有行。如果您想用不同的颜色高亮显示它们,可以使用
grep 'keyword1' file.log --color=always | GREP_COLORS="mt=01;34" grep --color=always 'keyword2'它将用蓝色突出显示keyword2。mt部件意味着grep将使用此CSI码突出显示匹配的文本,而01;34则表示“普通背景上的粗体蓝色前景”。
发布于 2012-12-31 03:07:36
尝试实际的正则表达式,而不是传递到grep的另一个实例,例如:
grep -E "\<foo\>.*\<bar\>" file不幸的是,这限制于匹配行,其中关键字仅按此顺序匹配。无论如何,在您的问题中使用grep是相当低效的,您应该避免它。对于您的情况,@DanielH的答复可能要简单得多。
对于关键字的“或”匹配,我经常使用:
grep -E "(foo|bar)" filehttps://askubuntu.com/questions/234543
复制相似问题