![如何停止终端转义序列中的 grep 匹配(或着色为多种颜色)?](https://linux22.com/image/1349406/%E5%A6%82%E4%BD%95%E5%81%9C%E6%AD%A2%E7%BB%88%E7%AB%AF%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97%E4%B8%AD%E7%9A%84%20grep%20%E5%8C%B9%E9%85%8D%EF%BC%88%E6%88%96%E7%9D%80%E8%89%B2%E4%B8%BA%E5%A4%9A%E7%A7%8D%E9%A2%9C%E8%89%B2%EF%BC%89%EF%BC%9F.png)
我编写了许多脚本来为比赛着色,如下所示:
$ echo abcdef | grepg c
ab[green]c[/green]def
$ echo abcdef | grepr e
abcd[red]e[/red]f
当我将其链接起来时它也有效:
$ echo abcef | grepr a | grepg b | grepg c | grepp e | grepl f
abcdef [each letter have it's own style]
但是当我尝试使用数字时,结果是错误的:
$ echo 12345 | grepr 1 | grepg 2 | grepb 3 | grepp 4 | grepl 5
[01;[01;3[01;35m4m31m1[01;[01;3[01;35m4m32m2[01;3[01;35m4m3[01;35m45
因为如果后续的 grep 也与先前的 grep 生成的转义序列匹配。
如何正确操作?我需要停止终端缩放序列内的 grep 匹配,或者使其匹配多个模式并将它们着色为不同的颜色。