コマンドからのテキスト出力を色付けするには、次のように、コマンドの出力を sed にパイプしてみてください:
あなたのコマンド | sed -e 's/FAIL/^[[01;31mFAIL^[[00m/g' -e 's/SUCCESS/^[[01;32mSUCCESS^[[00m/g']
これらの置換規則をテキスト ファイル (例:colorize.sed) に配置し、次を使用することもできます:
あなたのコマンド | sed -f colorize.sed
これにより、異なる一致文字列に異なる色を割り当てることができます。私の例では、'^[' はエスケープ文字を意味し、カラットの後に角括弧が続くものではないことに注意してください。エスケープ文字をルールに入力するには、Ctrl-V を入力してからエスケープ キーを押します。
これらの tty コードで使用できる色/効果は次のとおりです:
前景色:黒 =30、青 =34、シアン =36、緑 =32、紫 =35、赤 =31、白 =37、黄 =33
背景色:黒 =40、青 =44、シアン =46、緑 =42、紫 =45、赤 =41、白 =47、黄 =43
効果:通常 =00、太字 =01、暗い =02、下線 =04、点滅 =05、反転 =07、非表示 =08
これらは、私が行ったようにセミコロンと組み合わせることもできます (つまり、01;31 で太字の赤になります)。
前の色/効果を無効にするには、'^[00m' コードが必要であることに注意してください。そうしないと、色/効果は一致文字列の後も保持されます。また、一部の端末エミュレーターでは、一部の効果が機能しない (または説明したように機能しない) ことにも注意してください。
ディスカッションスレッド全体を読んでいないので、他の誰かが言ったことを繰り返しているだけではないことを願っています.
端末に色を付けるよりも、自分で単語に色を付ける方がおそらく簡単です。出力を作成するスクリプトを編集できない場合、他の方法でフィルター処理できますか?
利用可能なスケールの最後で、grep
を介して出力をパイプできます。 :
tail -F logfile | grep --color -P "FAIL|"
これは「FAIL」または「」のいずれかに一致し、文字列の一致部分を強調表示します。
たとえば、このブログ投稿で説明されているように、さらに特殊なものを使用することもできます。