Linuxコンソール上でユニークな値だけ色付けする
Pocket

あまり仕事とかではないのだけど、たまにコンソール上で全く同じ値を持つ以下のようなテキストから、ユニークな値(今回の場合はB)だけ色を付けたいと思うことがある。

A A A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A
A B A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A

 

一番簡単なのは、grepでユニークな値、もしくはユニークではない(重複した)値を指定してやることだろう。
通常はgrepでヒットした値はエスケープシーケンスで色付けされるので、それを利用すればいい。

command | grep -E '[^A]'
command | grep -e B -e '$'
Sponsored Links


ユニークな値、もしくはユニークではない値を指定せずに色付けをする場合は、ちょっと汚いけど以下のようにしてやれば(厳密にユニークな値かどうかは判定していないけど)対応できる。

grep -f <(echo $;cat file | fmt -1 | sort | uniq -c | tail -1 | awk '{print $2}') file

 

Pocket

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*