Existe alguma maneira de manter o texto passado na cabeça, cauda, ​​menos etc. para ser colorido?


26

Existe alguma maneira de manter colorização de texto passado através do tubo |para head, tail, less, etc.?


Algum programa de saída específico? Depende do programa enviar os dados através do canal. head, tailetc não são os que removem as cores, é o programa que gera os dados que normalmente verificam se a saída está indo para o console (colorido), um arquivo ou canal (não colorido).
precisa saber é o seguinte

Respostas:


15

Eu presumo que você está usando a tubulação lse deseja preservar os códigos de cores dos terminais. Você pode dizer ls --color=always(em vez do padrão de --color=auto), que preservará os códigos, mas isso não garantirá que o que você está procurando saiba como entendê-los.

Se você usar em glarkvez grepdele, tentará exibir com cores.

Se você usar lesscom -Rele, tentará exibir com cores.


6
Eu estou indo de git. Descobri que ele possui uma configuração semelhante (por exemplo git config color.diff always) que mantém a coloração.
Timofey Gorshkov

1
@Errandir O problema dessa configuração é que ele interromperá qualquer script ou comando que use a git diffsaída como entrada, pois sempre emitirá os códigos de escape ANSI.
KurzedMetal

@ Errandir, obrigado! Eu não tenho scripts que dependem de uma saída limpa do git diff, então isso funciona para mim! Obrigado !
precisa

Eu usei isso para o grep: grep "string" file.txt | headpara garantir que o resultado do grep fosse colorido, mudei paragrep "string" file.txt --color=always | head
Emil Stenström

13

Depende do programa que gera a saída no tubo.

head, tailetc não são os que removem as cores, é o programa que gera os dados que geralmente verificam se a saída está indo para o console (colorido), um arquivo ou canal (não colorido)

Encontrei outra sessão de perguntas e respostas de SU mostrando como mentir para canalizar programas para saída como se estivessem enviando saída para um console (emulando um console com unbuffer)


Existe alguma maneira de manter a coloração no color=automodo (para fazer o programa pensar que a saída vai para o console em vez do pipe)?
Timofey Gorshkov

@KurzedMetal Como um programa, por exemplo head, tailetc., detecta que está sendo canalizado para outro programa (para gerar dados sem cores, etc.).
Jorge Bucaran 01/03

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.