Existe alguma maneira de manter o texto passado para o cabeçalho, final, menos, etc., para ser colorido?

Existe alguma maneira de manter o texto passado para o cabeçalho, final, menos, etc., para ser colorido?

Existe alguma maneira de manter a colorização do texto passado pelo canal |para head, tail, less, etc.?

Responder1

Presumo que você esteja canalizando lse queira preservar os códigos de cores dos terminais. Você pode dizer ls --color=always(em vez do padrão --color=auto), o que preservará os códigos, mas isso não garantirá que aquilo para o qual você está direcionando saiba como entendê-los.

Se você usar glarkem vez grepdisso, tentará exibir com cores.

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

Responder2

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

head, tail, etc não são os que removem as cores, é o programa que gera os dados que normalmente verifica se a saída vai para o console (colorido), um arquivo ou canal (não colorido)

eu encontreioutra pergunta e resposta da SUmostrando como mentir para canalizar programas para a saída como se estivessem enviando a saída para um console (emulando um console com unbuffer)

Responder3

No Mac OS X man lsmenciona a CLICOLOR_FORCEvariável de ambiente.

Adicionar export CLICOLOR_FORCE=1a ~/.zshrcou ~/.bashrc, dependendo do shell que você usa, mantém as cores ao canalizar lspara outros comandos como less, heade tail.

Responder4

Considerar

bat

Uma alternativa para

cat

Instalar

brew install bat

--args --flags como

--languagee--theme

Exemplos

head | bat --language=zsh -n -p --theme=gruvbox-dark
file.py | bat --language=py -n -p --theme=gruvbox-dark

informação relacionada