Como posso fazer o grep respeitar cores em um pipe?

6

Em um shell moderno do Linux, muitos comandos (como ls ) podem gerar texto colorido.

Se você canalizar com outros comandos, você perde a cor. Por exemplo:

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

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

Como posso fazer o grep na segunda parte do pipe respeitar as ls colors (ou qualquer outro comando executado)?

    
por Zhen 03.06.2015 / 15:01

2 respostas

7

Você pode dizer a ls para sempre colorir a saída, já que quando está gravando em um pipe com --color=auto ela não adiciona cor.

Se você usar ls --color=always path | grep --color=never foo , fará ls adicionar cor e evitará que grep substitua por suas próprias cores.

    
por 03.06.2015 / 15:04
1

Ambos os comandos têm um argumento --color=always .

$ ls --color=always | grep e
    
por 03.06.2015 / 15:03

Tags