0

私の質問はこれに似ています:構文の強調表示/色付け cat。しかし、まったく同じではありません。

これを行うツールは素晴らしいでしょう:

  • catファイル
  • 単語xを色で強調表示するcx
  • 単語yを色で強調表示するcy

など 誰もがこのようなことを知っていますか?


これに対する「実際の動機」は次のとおりです。ログ(たとえば、によって生成されたもの)があり、1 つの色でlog4cxx強調表示したい。別の; 3位など。DEBUGERRORWARN

基本的に、私が達成しようとしているのは、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
4

2 に答える 2

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

正直なところ、それほど複雑ではないため、ツールはないと思います。

于 2013-06-20T12:18:26.893 に答える
0

ここに、色とパターンをコマンドライン引数として単純に受け入れる sed-wrapper があります。

https://stackoverflow.com/a/13593327/1033410

(使用法: cat yourfile | colorize.sh red ERROR yellow WARN blue 'user .* login')

于 2013-10-16T06:57:26.490 に答える