tail -f 表示カラー出力の作成方法

tail -f 表示カラー出力の作成方法

次のメッセージを含むサーバーログファイルの出力を追跡できるようにしたいです。

INFO
SEVERE

次に、その場合はSEVERE行を赤で表示し、そうであればINFO緑で表示します。これを行うのに役立つように、コマンドにどのエイリアスを設定できますかtail

ベストアンサー1

試してみてくださいマルチテール1. これは権利の超一般化であるtail -f。別のウィンドウで複数のファイルを表示したり、内容に応じて行を強調表示したりすることができます。

multitail -c /path/to/log

色は設定可能です。デフォルトのカラースキームが適切でない場合は、設定ファイルに直接作成してください。たとえば、multitail -cS amir_log /path/to/log次のコマンドを使用して呼び出します~/.multitailrc

colorscheme:amir_log
cs_re:green:INFO
cs_re:red:SEVERE

サーバーがインストールしにくい場合の別の解決策基準tail -f色選択制御シーケンスを追加するためにsedまたはawkで使用するツールです。これを行うには、tail -fstdoutがパイプの場合でもstdoutをすぐにフラッシュする必要があります。すべての実装がこれを行うかどうかはわかりません。

tail -f /path/to/log | awk '
  /INFO/ {print "\033[32m" $0 "\033[39m"}
  /SEVERE/ {print "\033[31m" $0 "\033[39m"}
'

またはsed

tail -f /path/to/log | sed --unbuffered \
    -e 's/\(.*INFO.*\)/\o033[32m\1\o033[39m/' \
    -e 's/\(.*SEVERE.*\)/\o033[31m\1\o033[39m/'

sedがGNU sedでない場合は、\o033リテラルエスケープ文字に置き換えてください--unbuffered

もう一つの可能​​性はtail -f実行することですEmacsシェルバッファを使用し、Emacsの構文カラー機能を使用します。

¹歴史的なウェブサイト2021年初めに消えます。最新バージョンは、次のような多くのディストリビューションで引き続き使用できます。アーチダーバン

おすすめ記事