关于linux:由unix管道过滤器输出的彩色控制台

colorful console output by unix pipe filter

在检查不同软件的控制台输出和日志消息时,有时很难保持概述。这将更容易使输出丰富多彩,突出显示当前重要的文本短语。

有没有一个Linux/Unix shell程序,可以使用Unix管道作为过滤器,根据预先定义的模式和颜色使控制台输出彩色?

P.EX模式定义:

1
2
3
4
INFO=green
WARN=yellow
ERROR=red
\d+=lightgreen

以突出显示消息和数字的严重性。

用途:

1
2
3
$ chatty_software | color_filter
11:41:21.000 [green:INFO]  runtime.busevents - SensorA state updated to [lightgreen:17]
11:41:21.004 [green:INFO]  runtime.busevents - SensorB state updated to [lightgreen:20]

原始输出:

1
2
11:41:21.000 INFO  runtime.busevents - SensorA state updated to 17
11:41:21.004 INFO  runtime.busevents - SensorB state updated to 20

我们沿着这些行使用一个SED脚本:

1
2
3
4
5
6
s/.* error .*/^[[31m&^[[0m/
t done
s/.* warning .*/^[[33m&^[[0m/
t done

:done

并通过调用

1
sed -f log_color.sed

我想你也可以做些类似的事情?