Como colorir a saída do grep

6

Quando eu digito

memcached -vv 2>&1 | grep --color=always "SET\|GET"

Eu recebo estatísticas legais do memcached

GET AR-City-1

GET rest-part-241

SET rest-part-241 Value len is 685

GET main-rest-list-1

Seria ótimo canalizar isso para algo e colorir GET em verde em vez do vermelho padrão.

Como eu poderia fazer isso?

    
por dux 18.11.2011 / 13:56

5 respostas

6

Isso provavelmente pode ser escrito mais curto, mas a solução fornece o resultado:

memcached -vv 2>&1 | sed -e "s/^GET.*$/\x1b[31m&\x1b[0m/" | sed -e "s/^SET.*$/\x1b[32m&\x1b[0m/"

Ou, se desejar, com cores de fundo em vez de cor de primeiro plano:

memcached -vv 2>&1 | sed -e "s/^GET.*$/\x1b[41m&\x1b[0m/" | sed -e "s/^SET.*$/\x1b[42m&\x1b[0m/"

Então GET é verde, SET é vermelho.

    
por 18.11.2011 / 16:05
4

para o gnu grep, isso funcionará:

$ export GREP_COLOR="01;32"

onde "01" significa: negrito e "32" verde. O padrão é "01:31" (vermelho em negrito). Outras cores:

  • 31: vermelho
  • 32: verde
  • 33: amarelo
  • 34: azul
  • 35: roxo

Essas cores podem parecer diferentes dependendo de como o terminal está configurado, mas as cores acima são as cores padrão.

Se

$ env | grep GREP_COLORS

fornece um resultado, essas configurações substituem a configuração GREP_COLOR (observe o "S"), consulte o grep manage para obter configurações mais detalhadas usando GREP_COLORS.

    
por 18.11.2011 / 15:54
1

tente rpen um marcador de texto baseado em egrep:)

    
por 06.05.2014 / 11:09
0

Se você quiser ver palavras diferentes em cores diferentes, use colorize por exemplo

    
por 18.11.2011 / 17:21
-1

Outro colorizador de texto alternativo baseado em ack-grep:

link

    
por 18.06.2014 / 11:26

Tags