コマンド出力をgrepでキーワードハイライトする

Linuxでターミナルに出力されるメッセージのうち特定のキーワードやパターンに色を付けて表示したいことがあると思う。例えばコマンドの長いヘルプメッセージのうち特定キーワードをハイライトしたい…など。こんな時に良い方法は無いものかと調べたところ、なんと、grep コマンドで実現できるらしい。

いわく、『ハイライトしたいパターン または $(行末)grepすれば良い』とのこと。行末にマッチさせるために正規表現指定は必須。なるほどだ。

たとえば Go 言語で失敗した単体テスト項目を見つけやすくするには:

go test -v | grep -e '(FAIL|$)'

他にも、エラーや警告に気付きやすい形でログの目視監視をしたければ:

tail -f log.txt | grep -e '(ERR|WARN|$)'

コンソール出力のハイライト専用ツールがあるのは知っていたけれど、なぜ標準的なLinux環境にどれも入っていないのかと思っていたら、grepで良かったんだな。灯台下暗し。