FIETS ~インフラエンジニアトレーニング場~

24歳までIT音痴・PC嫌いだった人間が、インフラエンジニアとして食べていけるようになるまでに役に立った情報を掲載

[Linux] grepの検索対象に色を付ける方法

【悩み】

grepした時、1行が長いと対象の文字列がどこにあるか見つけるのに時間がかかる!

 

 

悩み詳細

CentOS6系以下では、デフォルトではgrepしても色がつかない。

このくらいの検索ならいいですが...

$ cat /etc/redhat-release | grep release
CentOS release 6.5 (Final)


こんな風になると、どこで引っかかってるかよく見ないと分からない。。。

(nどこー)

$ cat test.txt | grep n
aiueokakikukekosasisusesotatitutetonaninunenohahihuhehomamimumemoyayuyowawon

 

※上記は例ですが実際でも、、、

log解析や起動時のコマンドライン引数で長くなった文字列grepなどは大変です。 

 


解決方法

そこでcolorオプション!

何も指定しないと赤色になります。

$ cat test.txt | grep n --color=auto
aiueokakikukekosasisusesotatitutetonaninunenohahihuhehomamimumemoyayuyowawon

 

見やすいですね。一目でnの在処が分かります。

 

 

豆知識

実は、CentOS7ではデフォルトでもオプション無しで色がつきます。何故でしょう?

その秘密はaliasです。
下記の設定が入っており、grepを実行すると、自動でcolor=autoオプションが付くようになっています。

$ alias | grep -w grep
alias grep='grep --color=auto'
$ cat /etc/redhat-release | grep Linux
CentOS Linux release 7.6.1810 (Core)

 

 

参考

Man page of GREP