Você pode alterar as cores com a variável de ambiente $ GREP_COLORS. No seu caso, você poderia tentar export GREP_COLORS='fn=1;32'
para mudar a cor do nome do arquivo para verde.
Se eu executar grep -ir "somethingtomatch" .
do diretório atual, normalmente obtenho resultados como este:
./some/path/file1.html: filecontent filecontent keyword filecontent
./some/path/file2.html: filecontent filecontent filecontent keyword
./some/path/file3.html: filecontent keyword filecontent filecontent
./some/path/file4.html: keyword filecontent filecontent filecontent
Eu usei grep --color=auto -ir 'somethingtomatch" .
, mas apenas destaca as palavras-chave em branco em um destaque em vermelho. Eu estou tentando obter nomes de arquivos no código de cores da esquerda também. Como eu faço isso?
Estou usando o Terminal.app no OS X com bash e xterm (e também testei o xterm-color).
Você pode alterar as cores com a variável de ambiente $ GREP_COLORS. No seu caso, você poderia tentar export GREP_COLORS='fn=1;32'
para mudar a cor do nome do arquivo para verde.
Você pode usar o ack, que permite definir variáveis de ambiente para o nome do arquivo, o número da linha e a própria correspondência.
Você teria que pós-processar a saída. Algo como isso pode funcionar:
$ grep --color -ir 'pattern' files | perl -pe 's/^([^:]+):/chomp(my $f = 'ls --color \Q$1'); $f/e'
(Eu estou assumindo que você está exibindo a saída de um sistema Linux, já que o OSX ls
não colore os arquivos de maneira útil para isso.)
(NB: a distinção entre esta resposta e a $GREP_COLORS
é que a última usa uma cor fixa, enquanto as minhas consultam ls --color
.)