¿Por qué grep agrega código ANSI \e[K
a su salida coloreada? No puedo entender el punto, pero obviamente los desarrolladores sí. Es un código de terminal ANSI / VT100 que se utiliza para "Borrar línea desde la posición actual del cursor hasta el final de la línea" .
En un caso marginal, grep puede hacer que el texto "desaparezca" de la pantalla del terminal. Por ejemplo:
echo -e "ab\rc"
echo -e "ab\rc" |grep --color=always "c"
El eco simple muestra: cb
pero la pantalla coloreada muestra:c
El texto codificado subyacente es: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K'
Sin embargo, sin los \e[K
códigos, echo -e 'ab\r\033[01;31mc\033[m'
funciona como se esperaba.
¿Cuál es la razón para la inclusión de estos \e[K
códigos por parte de grep ? Estoy escribiendo un guión para permitir la superposición de un segundo pase colorizing , como en: c=--color=always; ls $c /bin/gzip | grep $c 'z'
. así que necesito entender por qué usa grep \e[K
.