AFAICT, nem a página de manual do GNU grep
, nem info grep
se digna de explicar o que --color=auto
significa.
Devo ser uma das poucas pessoas no planeta para as quais o significado dessa opção não é imediatamente óbvio.
Eu suponho que --color=auto
"está em algum lugar no meio" --color=never
e --color=always
, mas isso ainda deixa muito não especificado.
less -R
poderá obter o destaque da correspondência, mas precisará especificar--color=always
grep para que funcione.Como
grep
é um programa GNU, outra opção pode ser dar uma olhada no código fonte.Internamente testes grep os
static int color_option
para um ou outro0
,1
ou2
.0
nunca use saída colorida1
use sempre cores2
use somente cores ao imprimir em um terminalAgora, quando você entregar
--color=auto
ao grep como argumento em seu CLI, ele define internamente a variávelcolor_option
a2
.Se
color_option
iguala2
grep
, testa mais seSTDOUT
está vinculado a um terminal ou se o usuário desativou a saída colorida viashell environment variables
. Se o primeiro for verdadeiro e a saída colorida for permitida,grep
continue avaliando quais cores devem ser usadas e, finalmente, finalmente será impresso na suaCLI
cor.fonte: (grep 2.21)
fonte