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
で、色の指定ができる。