Чому grep додає ANSI-код \e[Kу кольоровий вихід? Я не бачу сенсу цього, але очевидно, що розробники можуть. Це термінальний код ANSI / VT100, який використовується для "Очистити лінію від поточного положення курсору до кінця рядка" .
У випадку з бахромою grep може призвести до того, що текст "зникне" з дисплея терміналу. Наприклад:
echo -e "ab\rc"
echo -e "ab\rc" |grep --color=always "c"
Простий ехо- дисплей:, cbале кольоровий дисплей показує:c
Основний закодований текст: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K'
Однак, без \e[Kкодів, echo -e 'ab\r\033[01;31mc\033[m'працює, як очікувалося!
У чому причина включення грепів у ці \e[Kкоди. Я пишу сценарій , щоб для перекладки з другого фарбувального проходу , як в: c=--color=always; ls $c /bin/gzip | grep $c 'z'. тому мені потрібно зрозуміти, чому використовується греп \e[K.