Ultimamente, tem havido uma tendência pelas ferramentas de linha de comando de usar cores ANSI sofisticadas em sua saída de log (por exemplo, NPM e várias ferramentas baseadas em nodejs, rvm, docker e algumas outras ferramentas "modernas").
Isso facilita a leitura na tela (*), mas não é tão bom quando você deseja canalizar a saída para um arquivo de log ou através de um transporte que não lida com ANSI, como várias ferramentas de execução remota e soluções de monitoramento baseadas na Web. Muitas ferramentas mais maduras tiveram a decência de detectar quando a saída não é um TTY e desativar a cor, mas não com as novas CLIs "amigáveis" e fangled - o que me deixa tentando livrar-se das cores ANSI por meio de tubulação a saída através de mais um processo.
Sediar a saída s/\x1B\[[0-9]*\w//g
parece fazer o trabalho, mas existe uma abordagem mais limpa, basta copiar colar expressões regulares em todos os meus scripts?
(*) pelo menos até que a ferramenta tente exibir erros em vermelho escuro no seu terminal de fundo escuro.
is there a cleaner approach then just copy pasting regular expressions into all of my scripts?
- Salve seu filtro de limpeza em um arquivo chamado '/ usr / local / bin / stripttycolor.sh` ou algo assim? Dessa forma, você tem o regex confinado a um único local?--no-color
sinalizador. Muitos outros comandos também possuem sinalizadores semelhantes.bower
.Respostas:
"ansifilter -p" pode ser útil para você ...
Está nos repositórios do Fedora; -p especifica saída simples:
fonte