尽管 --color=always,为什么 grep 不显示颜色?

尽管 --color=always,为什么 grep 不显示颜色?

作品:

echo '\example' | grep --color=always -i '.example'

作品:

echo '\example' | grep --color=always -i '\\example'

匹配,但缺少颜色:

echo '\example' | grep --color=always -i '\example'

答案1

寻找差异

我花了一些时间研究 grep 的源代码并稍微缩小了问题范围。

主要问题出在功能上print_line_middle。请参阅此循环结构:

for (cur = beg;
     (cur < lim && ((match_offset = execute (compiled_pattern, beg, lim - beg,
                                             &match_size, cur)) != (size_t) -1));
     cur = b + match_size)
{

差异

问题是,例如上面的#3,match_offset = execute(...)调用等于-1。此结果会影响打印的时间以及使用的颜色。

这是一个错误吗?

我不知道:)但请随时向开发人员发送电子邮件。来自自述文件:

将错误报告发送至[电子邮件受保护]

相关内容