Normalmente utilizo o Grep para
procurar texto exato em ficheiros. Ao utilizar grep -R texto
dentro de
um diretório, posso localizar todos os seus ficheiros onde esse texto se
encontra.
Quando há muitas correspondências, é mais conveniente usar o less
para
percorrer os resultados. O problema é que quando se executa grep -R text
| less
as cores deixam de ser visíveis.
O Grep não exibe cores por padrão, mas é configurado na maioria das
distribuções GNU/Linux com um alias no arquivo .bashrc
, ou o equivalente em
outros interpretadores de comandos, para detetar quando exibir cores e
quando não: alias grep='grep --color=auto
. Ao passar o resultado de sua
execução para outro programa através de um pipe, o Grep deixa de exibir
cores, pois os códigos usados para exibir cores em terminais adicionam
caracteres inexistentes que podem produzir resultados inesperados. Para
mostrar as cores também neste caso devemos acrescentar --color=always
.
Temos também de passar a opção -r
ao less
para que este mostre os
caracteres coloridos. O comando tem o seguinte aspeto: grep
--color=always -R text | less -r
.
Uma vez que é aborrecido escrever tanto, é uma boa ideia adicionar esta
função ao ficheiro .bashrc
(lembra-te que é necessário recarregar a
configuração do Bash para poder
utilizar a função):
lgrep ()
{
grep --color=always -R "$1" | less -r
}
Desta forma, só tens de escrever lgrep texto
para apresentar os
resultados com cor no less
.
Comentários