Я написал несколько сценариев для раскраски совпадений, например:
$ 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
потому что, если последующие greps также совпадают внутри escape-последовательностей, созданных предыдущими greps.
Как это сделать правильно? Мне нужно либо остановить сопоставление grep внутри последовательностей эскалации терминала, либо сделать так, чтобы оно совпадало с несколькими шаблонами и раскрасить их в разные цвета.