如何为特定字符序列更改bash输出的颜色

如何为特定字符序列更改bash输出的颜色,bash,colors,Bash,Colors,我正在做一个项目,在这个项目中,我从终端启动一些服务器,当不同的事件发生时(轮询消息、API调用等),它会显示所有服务器日志。我正在测试一些新的特性,需要观察这些日志(很快),以确保一切都在正常工作。我想知道是否有可能对通过的某些消息进行颜色编码,以便我能更快地识别它们 例如,我想确定在哪里进行了特定的API调用。类似于“INFO:root:default:PUT/api/v0.1/Something/Something/mashedpatoms”。有没有可能在消息通过时更改其颜色?您可以使用A

我正在做一个项目,在这个项目中,我从终端启动一些服务器,当不同的事件发生时(轮询消息、API调用等),它会显示所有服务器日志。我正在测试一些新的特性,需要观察这些日志(很快),以确保一切都在正常工作。我想知道是否有可能对通过的某些消息进行颜色编码,以便我能更快地识别它们


例如,我想确定在哪里进行了特定的API调用。类似于“INFO:root:default:PUT/api/v0.1/Something/Something/mashedpatoms”。有没有可能在消息通过时更改其颜色?

您可以使用ANSI转义码来执行此操作

Black        0;30     Dark Gray     1;30
Red          0;31     Light Red     1;31
Green        0;32     Light Green   1;32
Brown/Orange 0;33     Yellow        1;33
Blue         0;34     Light Blue    1;34
Purple       0;35     Light Purple  1;35
Cyan         0;36     Light Cyan    1;36
Light Gray   0;37     White         1;37
然后像这样使用它:

PURPLE='\033[0;35m'
NC='\033[0m' # No Color
echo "${PURPLE}INFO:root:default: PUT /api/v0.1/something/something/mashedpotatoes${NC}\n"

它以紫色打印。

我不确定这是我要找的,但如果我错了,请纠正我。听起来我必须把它添加到日志源中?我基本上是在寻找可以添加到.bash_配置文件中的内容,它将在日志出现时解析日志,如果它们与我的字符序列匹配,则将其着色。如果我要将此添加到我的.bash_配置文件中,我想这只会在打开终端时打印该序列。@Mike您可以在读取日志时通过sed、awk等将这些代码添加到输出中,以在屏幕上显示它们。最好使用
tput
获取这些颜色的代码,而不是硬编码它们。没有任何东西可以保证这些代码对于给定的终端是正确的。在我的情况下,
echo-e
是可能重复的