grepの色を変える

デフォルトのターミナルウィンドウは、背景色黒が多いと思います。grepのカラー表示は、文字色赤なので、背景色黒ではとても見づらく、前回は、ブラウザを使って、背景色白、文字色赤にして見やすくなりました。
grepコマンドのカラー表示は、色指定できるので、見やすい色にしてしまえば、色で見辛かった問題は解決します。

さてgrepの結果に色を付けるのは、–colorオプションでしたね。

takk@deb9:~/tmp/gmp-6.1.2+dfsg$ grep -rn In.general * --color


では色を変えるにはどうすればよいでしょうか。manを確認。
man grepより

       GREP_COLOR
              この変数は、パターンにマッチした (空文字列ではない) テキストを強
              調するために 使用する色彩を指定します。 GREP_COLORS 変数を使用す
              る方が望ましく、この変数は非推奨なのですが、今でも  使えないこと
              はありません。 GREP_COLORS 変数の mt, ms, mc  機能を使用している
              場合は、この変数による指定より、そちらのほうが 優先されます。 こ
              の変数によって指定できるのは、マッチする空文字列ではないテキスト
              を  強調するために、マッチする行ならどこでも使用する色彩だけなの
              です (マッチする行は、コマンドラインオプション -v を指定しなかっ
              たときは、選択される行になり、 -v を指定したときは、前後の文脈行
              になります)。  この変数のデフォルトの値は  01;31  ですが、それは
              ターミナルのデフォルトの背景色に赤い前景色の太字で  テキストを表
              示するということです。

GREP_COLORで指定すれば、grep結果の色が変更できます。デフォルトの指定が、01:31とのことなので、

takk@deb9:~/tmp/gmp-6.1.2+dfsg$ GREP_COLOR='01:31' grep -rn In.general * --color

おかしい、色がつかなくなりました。
注意深く見ると、間違いが。:(コロン)ではなく;(セミコロン)が正解ですね。

takk@deb9:~/tmp/gmp-6.1.2+dfsg$ GREP_COLOR='01;31' grep -rn In.general * --color

では、黄色にしてみます。

takk@deb9:~/tmp/gmp-6.1.2+dfsg$ GREP_COLOR='01;33' grep -rn In.general * --color


これでターミナルウィンドウでも、見やすくなりますね。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA