Como remapear a cor do texto no terminal

0

Estou usando um terminal com fundo branco / claro, mas a saída de um comando que eu usei contém texto com cor branca (ou seja, cor de primeiro plano = branco). Existe alguma maneira (por exemplo, usando script de shell?) Para mapear todo o primeiro plano branco para o primeiro plano preto e manter as outras cores inalteradas?

    
por AhLeung 19.04.2017 / 07:22

3 respostas

1
your_script | perl -pe 's/\e\[((?:0;)?)97m/\e[${1}30m/'

Alimente sua saída de script com o código Perl fornecido acima, que transforma todas as sequências de cores de escape para foregroud branco = > preto fg.

    
por 19.04.2017 / 07:43
0

Depende do terminal. No xterm, você pode alterar o mapeamento de números de cores para nomes de cores com a sequência de escape OSC 4 ; NUMBER ; NAME BEL . O branco explícito é a cor 7, então:

printf '\e[4;7;black\a'

Isso afeta a cor, seja ela usada como plano de fundo ou primeiro plano. É uma configuração de renderização, ou seja, afeta todas as saídas passadas e futuras.

Poucos outros terminais suportam isso.

    
por 20.04.2017 / 01:04
0

Os recursos precisos do seu terminal serão diferentes entre versões e implementações. Alguns terminais tradicionais oferecem muito pouco por meio de personalização de janela individual, enquanto muitos sistemas operacionais de desktop têm terminais elegantes onde você pode ajustar livremente as cores de uma janela individual abrindo as preferências.

Como solução rápida e suja, selecionar o texto com o mouse geralmente aplica uma paleta de cores diferente, o que pode ajudar. Se isso não acontecer, colar o texto em outra janela onde você tem as cores desejadas geralmente é um pequeno passo adicional.

    
por 19.04.2017 / 08:53