`cat` analogue for highlighting different matches in different colors
我的问题类似于这个问题:语法高亮显示/给cat上色。但不完全一样。
一个工具,这样做会很好:
cat 文件- 突出显示颜色为
cx 的单词x 。 - 突出显示颜色为
cy 的单词y 。
等等,有人知道这样的事吗?
"现实世界的动机"是:我有一个日志(例如由
基本上,我想实现的是:如何设置log4cxx控制台输出的颜色?
我想到了
思想?
编辑:谢谢,@sjngm!好建议。我对它做了一点修改(现在可以用作
1 2 3 | # escaped ' ------------v; light red ------vvvv; red ------------vvvv; yellow -------vvvvv; green ---------vvvv; brown ----------vvvv; dark gray ------vvvv alias log_color='nawk '"'"'BEGIN { arr["FATAL"] ="1;31"; arr["ERROR"] ="0;31"; arr["WARN"] ="1;33"; arr["INFO"] ="0;32"; arr["DEBUG"] ="0;33"; arr["TRACE"] ="1;30" } { l = $0; for (pattern in arr) { gsub(".*" pattern".*","\033[" arr[pattern]"m&\033[0m", l); } print l; }'"'" alias log_error='grep"FATAL\|ERROR\|WARN"' |
示例用法:
1 2 | $ cat log_file | log_color $ cat log_file | log_error | log_color |
号
不久前,我用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | cat yourfile | nawk ' BEGIN { arr["EXCEPTION"] ="0;31"; arr["\\[ERROR\\]"] ="1;31"; arr["\\[WARN\\]"] ="0;31"; arr["\\[INFO\\]"] ="1;34"; } { l = $0; for (pattern in arr) { gsub(pattern,"\033[" arr[pattern]"m&\033[0m", l); } print l; }' |
配置部分应该与您的
老实说,我认为没有一个工具可以解决这个问题,因为它没有那么复杂。
在这里,您将找到一个SED包装器,它只接受颜色和模式作为命令行参数:
https://stackoverflow.com/a/13593327/1033410
(用法:cat yourfile colorize.sh red error yellow warn blue'user.*logged in')