grepコマンドに色をつける
$ grep --color=auto foo *
colorオプションで該当部分やファイル名などを色づけする。
環境変数GREP_OPTIONSを設定すると、コマンド実行時に設定したオプションが適用される。
# ~/.bashrc
export GREP_OPTIONS='--color=auto'
# 実行時に--color=autoが適用される
$ grep foo *
GREP_OPTIONSを設定している状態でgrepコマンドにcolorオプションを指定すると、コマンドのオプションが適用される。
# GREP_OPTIONS='--color=auto' を設定していても--color=neverが適用される
$ grep --color=never foo *
colorオプションには、never(色をつけない)、auto(可能なら色をつける)、always(いつでも色をつける)が指定できる。
autoの場合、grepコマンドを単体で使用した場合は色づけするが、grepの結果をリダイレクトしたり、パイプで別のコマンドに渡す場合は色づけされない(grepの結果に色づけのエスケープシーケンスがつかない)。
alwaysの場合、リダイレクトやパイプの使用でも色づけされる。検索結果に色づけのエスケープシーケンスがつくので、検索結果を使って後続処理を行う場合、エスケープシーケンスが原因で期待した結果が得られないこともあるので注意。
環境変数GREP_COLORで、色の指定ができる。