如何使 grep 尊重管道上的顏色?

如何使 grep 尊重管道上的顏色?

在現代 Linux shell 中,許多命令(例如ls)可以輸出彩色文字。

如果使用其他命令通過管道傳遞它,則會丟失顏色。例如:

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

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

如何使grep管道的第二部分尊重ls顏色(或執行的任何其他命令)?

答案1

您可以告訴ls始終為輸出著色,因為當它寫入管道時--color=auto不會添加顏色。

如果這樣做,ls --color=always path | grep --color=never foo它將添加ls顏色,並防止grep用它自己的顏色替換。

答案2

兩個指令都有一個--color=always參數。

$ ls --color=always | grep e

相關內容