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