回答:
を使用し--color=always
ます。
grep
出力がパイプ(またはファイル)に対するものかどうかを検出します。出力がファイルへの場合、端末のエスケープシーケンスであるため、ほとんどの場合、色は必要ありません。通常:
foo ^[[01;31m^[[Kbar^[[m^[[K
例から:
grep pattern file > result
useをオーバーライドするには--color=always
。
grep --color=always pattern file | ...
例:
ファイルを持っている:
ID=111;Year=2013;foo=bar
ID=222;Year=2013;foo=baz
それから
grep --color=always ID file | grep --color=always 2013 | grep foo
色だろうID
、2013
とfoo
。
grep --color=always ID file | grep 2013 | grep foo
着色ID
しますfoo
が、そうではありません2013
。
1重要:また、追加された色の乱雑さはチェーンの次のコマンドに渡されることを覚えておく必要があります。IDに色を付けると、(たとえば)一致させることはできませんID=111
。
場合によっては、ファイルに端末の色が必要になることがあります。試してみる
grep --color=always foo file > result
cat result
ただし、作成されるファイルの移植性は非常に制限されます。
着色自体も拡張機能です。
良い@slmで述べたように、以下を追加できます:
export GREP_OPTIONS="--color=always"
あなた.bashrc
などに、しかし何らかの理由でその意味を本当に理解し、それでもやりたいと思わない限り、そうしないでください。grep
上記の事実により、多くの点で破られます1。
alias
頻繁に使用する場合は追加します。
alias cgrep='grep --color=always'
GREP_OPTIONS
そして、--color
3つのオプションを取る:never
、auto
とalways
。最初に考慮されるのは2つだけですGREP_OPTIONS
。
また、チェックアウトする可能性がGREP_COLORS
でman
ページまたはでのGNU grepを。
export GREP_OPTIONS="--color=always"
.bashrcで、オプションをgrepのデフォルトにします。