grep でパイプ上の色を尊重するにはどうすればよいでしょうか?

grep でパイプ上の色を尊重するにはどうすればよいでしょうか?

最近の Linux シェルでは、多くのコマンド (などls) が色付きのテキストを出力できます。

他のコマンドとパイプすると、色が失われます。例:

$ ls path
[... folders in blue, executables in green,..etc ]

$ ls path | grep foo
[... all in black and white]

grepパイプの 2 番目の部分でls色 (または実行される他のコマンド)を尊重するにはどうすればよいですか?

答え1

lsパイプに書き込むときには--color=auto色が追加されないため、出力を常に色付けするように指示できます。

そうすると、色が追加ls --color=always path | grep --color=never fooされlsgrep独自の色に置き換えられなくなります。

答え2

どちらのコマンドにも--color=always引数があります。

$ ls --color=always | grep e

関連情報