1. ホーム
  2. linux

[解決済み] grepにパイプを通した後、カラーリングを保持する

2022-04-22 10:11:29

質問

に同様の質問があります。 grepした後、lsのカラーリングを保持する しかし、色付きのgrep出力を別のgrepにパイプした場合、色付けが保存されないことに悩まされます。

例として grep --color WORD * | grep -v AVOID は、最初の出力の色を維持しません。しかし、私にとっては ls | grep FILE は色を維持します。なぜこのような違いがあるのでしょうか?

解決方法は?

grep パイプに書き込むときなど、カラー出力を無効にすることがあります。この挙動を上書きするには grep --color=always

正しいコマンドラインは次のようになります。

grep --color=always WORD * | grep -v AVOID

これはかなり冗長ですが、代わりに次の行を追加することもできます。

alias cgrep="grep --color=always"

をあなたの .bashrc を使用して、例えば cgrep を色付きグレップとして使用します。を再定義する場合 grep の特定の出力に依存しているスクリプトとトラブルになる可能性があります。 grep で、ASCIIエスケープコードを好まない。