Dlaczego grep dodaje kod ANSI \e[K
do kolorowych wyników? Nie rozumiem sensu, ale oczywiście programiści mogą. Jest to kod terminala ANSI / VT100, który służy do „czyszczenia linii od aktualnej pozycji kursora do końca linii” .
W marginesowym przypadku grep może powodować „znikanie” tekstu z wyświetlacza terminala. Na przykład:
echo -e "ab\rc"
echo -e "ab\rc" |grep --color=always "c"
Proste echo wyświetla :,cb
ale kolorowy wyświetlacz pokazuje:c
Podstawowy zakodowany tekst to: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K'
Jednak bez \e[K
kodów echo -e 'ab\r\033[01;31mc\033[m'
działa zgodnie z oczekiwaniami!
Jaki jest powód włączenia grep do tych \e[K
kodów. Piszę skrypt, aby umożliwić nakładanie z drugim przejściu kolorowania , na przykład: c=--color=always; ls $c /bin/gzip | grep $c 'z'
. więc muszę zrozumieć, dlaczego grep używa \e[K
.