Grep:对多个表达式之一使用颜色

Grep:对多个表达式之一使用颜色

是否可以使用 grep 搜索多个表达式,但只为其中特定的一个表达式着色?

我所追求的示例:

cat file | grep -e foo --colour -e bar 

输出(其中粗体代表彩色):

富巴兹

酒吧巴兹

曲克斯富

酒吧

答案1

PCRE 可能被滥用,因此存在匹配但没有匹配的内容会突出显示:

grep -P 'foo.*\K$|bar' input

答案2

一个解决方案(虽然不是特别优雅)是使用多个 grep 查询。

cat file | grep -e foo -e bar | grep -9999 --colour -e bar

注意:该-9999标志是一个让 grep 从 stdin 输出大量行的 hack。如果需要,可以增加该值。

相关内容