2013-06-20 40 views
0

我的问题与此类似:Syntax highlighting/colorizing cat。但不完全一样。用于突出显示不同颜色不同匹配的`cat`类似物

的工具,这样做将是巨大的:

  • cat文件
  • 彩色亮点字x颜色cx
  • 亮点字ycy

等有谁知道这样的事情?


的“真实世界的动机”的是这样的:我有一个日志(由log4cxx等产生的),我想强调的DEBUG一种颜色;另一个是ERROR; WARN在第三等

基本上,我想要实现的是:How to set colour of console output of log4cxx?

我想catgrep(自定义颜色)之间的某种组合。但是外部工具也可以完成这项工作(如果存在的话)。

想法?


编辑: 谢谢,@sjngm!伟大的建议。我对它进行了一些修改(现在可以用作alias,并且所有行都被高亮显示)。我决定后我的修改,因为这可能是为别人有用:

# 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"' 

用法示例:

$ cat log_file | log_color 
$ cat log_file | log_error | log_color 
+1

你见过[multitail](http://www.vanheusden.com/multitail/)吗? – devnull

回答

1

前一段时间我做了类似的日志文件的东西,也有nawk

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; 
}' 

配置部分应该与x => cx风格,你也可以使用tail -f,而不是cat

说实话,我不认为有一个工具,因为它并不那么复杂。

+0

不错!对不起,对于迟到的反应,我完全忘了这个问题:) –

+0

@KirilKirov没问题,只要它对你有用它对我来说很好:) – sjngm

相关问题