在現代 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