使用方法

colorecho [options] message
colorecho [options] < /path/to/file
echo "message" | colorecho [options]
colorecho -v
colorecho -s
colorecho -l
colorecho -h

オプション一覧

-s, --symbol-list

文字色、背景色、テキスト属性で指定できるシンボルの一覧を表示します。

-l, --index-list

文字色、背景色で指定が可能なカラーインデックスの一覧を表示します。例えば60番の色を指定する場合にはindex60とします。

例:
$ colorecho Hello -f index220 -b index90
結果:

screen shot

カラーインデックスの一覧をチェックする

-p, --pickup "pattern[,foreground_color[,background_color[,text_attribute]]]"

指定したパターンとマッチしたテキストに対してここで指定した文字色、背景色、テキスト属性を適用します。 バージョン2まではマッチしたパターンに適用する装飾は-f,-b,-tオプションで指定でしたがversion 3.0.0からはここで指定した装飾を適用するようになりました。

このオプションは複数書けます。マッチしたパターンが含まれる行を装飾したい場合は-Hオプションを使用してください。

foreground_colorを指定しなかったとき、パターンとマッチしたテキストに適用するデフォルトの文字色は cyan です。 /^foo/iのようにパターンを指定した場合はpatternを正規表現リテラルとして扱います。

例:
$ echo "FooFoOfOO" | colorecho -p "/foo$/i,magenta" -p "/^foo/i,green"
結果:

screen shot

-H, --hightlight "foreground_color[,background_color[,text_attribute]]"

-pオプションでマッチした行に対してマッチしたパターン以外の部分に指定した装飾を適用します。

ひとつ目の-pオプションにはひとつ目の-Hオプションが対応します。 従ってこのオプションは-pオプションの数を超えて指定することはできません。 もし-pオプションを超える数のオプションが指定された場合、超過分の-pオプションとマッチした行には最初に指定した-Hオプションの装飾が適用されます。

ひとつの行に-pオプションで指定したpatternがふたつ以上マッチしたとき最初に指定した-Hオプションの装飾が適用されます。

例:
$ colorecho -e "xxxfooxxx\nxxxxxxfoo\nfooxxxxxx" -p "/foo$/,green" -H index85
結果:

screen shot

-f, --fg color_name

文字色を指定します。使用できる色のリストはcolorecho -sまたはcolorecho -lで確認できます。

-b, --bg color_name

背景色を指定します。使用できる色のリストはcolorecho -sまたはcolorecho -lで確認できます。

-t, --tx text_attribute[,...]

テキスト属性を指定します。使用できるテキスト属性のリストはcolorecho -sで確認できます。 このオプションは-t underline,bold,blinkのように複数書くことができます。

-w, --watch

待機モードです。標準入力を待つ場合に使用します。exit,quit,byeもしくはCtl + cでこのモードを抜けることができます。 例えばtail -fなど、標準入力を受け取りたいときに使用します。

例:
$ tail -f /tmp/foo.log | colorecho -w -f gray -p foo.html,h_red,nil,bold,underline -H h_cyan
結果:

screen shot

  • -w-pオプションを使えばこのように特定のパターンを含む行をハイライトするように待機することができます。

--stripe

一行間隔を空けて装飾を適用します。このオプションは-pオプションとは同時に使用できません。 このオプションを指定したときに-pオプションが指定されていても無視されます。

-f,-b,-tオプションに何も装飾を指定していなかったときは文字色にcyanを使用します。

例:
$ tail -f /tmp/foo.log | colorecho -w --stripe
結果:

screen shot

-r, --refresh-match

入力に対し-pオプションで指定したパターンとマッチする場合のみ可能な限りシーケンスコードを取り除きます。

-R, --refresh

入力に対し常に可能な限りシーケンスコードを取り除きます。 ただし-f,-b,-t,-pオプションなど、なんらかの装飾の指定を行っている場合にしか機能しません。

例:
$ tail -f /tmp/foo.log | colorecho -f index205 -w | colorecho -w --stripe -f index156 -R
結果:

screen shot

  • この例では一度全体の文字色にindex205で色をつけ、次に--stripeで一行飛ばしにindex156で色をつけています。 すでにindex205で色づけされているため、それを取り除くために-Rオプションを指定しています。

-c file_name,...

指定したオプション用ファイルからオプションを読み込みます。 カンマ区切りで複数指定でき、オプションが重複するものは後のほうが優先されます。 また、defaultが作成されている場合はこのオプションを指定されなくても常にdefaultからオプションを読み込みます。

詳しいリファレンスマニュアルはオプション読み込み機能についてをご覧ください。

-n

最後に改行コードを出力しません。

-e

改行コードを検出したとき改行コードとして評価します。

-v

color_echoのバージョンを表示します。

-h, --help

ヘルプを表示します。

使用例

あなたはアクセスログからステータスコードが4xx, 5xx番台のログを探していたとします。 screen shot

4xxに黄色、5xxに赤色をつけて、さらに文字色を灰色にして目立たせてみましょう。

例:
$ sed -n 1,1000p /var/log/httpd/access.log | colorecho -f gray -p "/\\s4..\\s/,h_yellow,nil,bold,underline" -H index156 -p "/\\s5..\\s/,h_red,nil,bold,underline" -H index197 | less -R
結果:

screen shot

いかがでしょうか。こんなにも見つけやすくなりました。 しかし少しオプションが長いので外部のファイルに移して好きなときに呼び出せるようにしましょう。

~/.colorecho/status_code:
f=gray
p=/\s4..\s/,h_yellow,nil,bold,underline
H=index156
p=/\s5..\s/,h_red,nil,bold,underline
H=index197

ファイルからオプションを指定するときには \"\\\" のようにバックスラッシュでエスケープする必要はありません。 これを~/.colorecho/status_codeで保存したらここに記述した長いオプションを-c status_codeで呼び出すことができます。

下記のようにtailcolorechoを組み合わせてアクセスログをリアルタイムで監視することもできます。

例:
$ tail -f /var/log/httpd/access.log | colorecho -w -c status_code

コマンド版のcolorechoの使い方で一番便利なのがこのようにtailなどと組み合わせて特定のパターンとそのパターンの含まれる行を強調できることです。 colorechoは標準入力を受け付けることも待機することもできるのでいろいろなコマンドと組み合わることができます。

組み合わせ例

vmstat と組み合わせてストライプ状に色をつけて見やすくします:
$ vmstat -n 1 | colorecho -w --stripe
netstat と組み合わせて特定のポートを目立たせます:
$ netstat -nat | colorecho -f gray -p :8080,red,nil,bold -H index52 -w
top と組み合わせて特定のユーザのプロセスを目立たせます:
$ top | colorecho -p khotta,red,nil,bold,underline -H cyan -w
less と組み合わせて特定のパターンを目立たせます:
$ colorecho -p foo < foo.txt | less -R
ps と組み合わせて特定のプロセスを目立たせます:
$ ps aux | colorecho -p apache,red,nil,bold,underline -H cyan -w | less -R