相关疑难解决方法(0)

grep --color 添加 ANSI 代码 ESC[K - 这可以改变显示的文本

为什么 grep 将 ANSI 代码添加\e[K到其彩色输出中?我看不出它的意义,但显然开发人员可以。它是一个ANSI/VT100 终端代码,用于“清除从当前光标位置到行尾的行”

在边缘情况下,grep 会导致文本从终端显示中“消失”。例如:

echo -e "ab\rc"
echo -e "ab\rc" |grep --color=always "c"
Run Code Online (Sandbox Code Playgroud)

简单的显显示: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'按预期工作!

grep 包含这些\e[K代码的原因是什么。我正在写一个脚本来允许一个叠加的第二彩色化通,如:c=--color=always; ls $c /bin/gzip | grep $c 'z'。所以我需要了解为什么 grep 使用\e[K.

grep colors terminal

9
推荐指数
1
解决办法
4179
查看次数

标签 统计

colors ×1

grep ×1

terminal ×1