¿Cuál es el comportamiento de color predeterminado para grep --color
? si no [=CUANDO ] está especificado?
La página de manual de grep dice:
--colour
[=CUANDO ], --colour
[=CUANDO ]
- Rodee las cadenas coincidentes (no vacías), las líneas coincidentes, las líneas de contexto,
nombres de archivos, números de línea, compensaciones de bytes y separadores (para campos y
grupos de líneas de contexto) con secuencias de escape para mostrarlos en color
en el terminal.
…
CUÁNDO es
never
, always
o auto
.
¿El valor predeterminado [=CUÁNDO ] para grep --color
convertirse en:
grep --color=auto
o
grep --color=always
¿O depende de la implementación y la plataforma?
En mis pruebas en Ubuntu 14.04 con GNU grep 2.16:
echo "foo bar" | grep --color foo
da como resultado foo
bar
, mientras
echo "foo bar" | grep --color foo | grep --color bar
da como resultado foo
bar
, por lo que parece que grep --color=auto
está vigente aquí. Sin embargo, no he probado esto en Windows o Mac; No sé si este comportamiento es universal.
Este valor predeterminado para [=CUANDO ] es un poco diferente de ls --color
donde está la página del manual para ls
estados:
--colour
[=CUANDO ]
- colorea la salida.
CUÁNDO el valor predeterminado es
always
o puede ser never
o auto
.Aquí, el comportamiento del CUANDO faltante es explícito.
Respuesta aceptada:
Por defecto es auto
.
grep --color
es lo mismo que escribir --color=auto
.
Esto parece estar documentado de manera deficiente, o consideran el simple --colour
obsoleto, pero eso se puede ver tanto en las pruebas como en su código fuente:
case COLOR_OPTION:
if (optarg)
{
if (!strcasecmp (optarg, "always") || !strcasecmp (optarg, "yes")
|| !strcasecmp (optarg, "force"))
color_option = 1;
else if (!strcasecmp (optarg, "never") || !strcasecmp (optarg, "no")
|| !strcasecmp (optarg, "none"))
color_option = 0;
else if (!strcasecmp (optarg, "auto") || !strcasecmp (optarg, "tty")
|| !strcasecmp (optarg, "if-tty"))
color_option = 2;
else
show_help = 1;
}
else
color_option = 2;
break;
Tenga en cuenta que la falta de un optarg
da como resultado lo mismo que es igual a auto
o tty
.