是否可以使用 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。如果需要,可以增加该值。