在 CentOS7 中 colordiff -y 不会输出颜色

在 CentOS7 中 colordiff -y 不会输出颜色

我终其一生都无法将colordiff颜色输出到终端。我感觉我缺少了一些简单的东西。

无颜色输出的示例

环境:

  • cat /etc/centos-release= CentOS Linux 版本 7.5.1804(核心)
  • colordiff --version= diff(GNU diffutils)3.3
  • sudo yum info diffutils= 版本 :3.3 | 发行版 :5.el7
  • sudo yum info colordiff= 版本 :1.0.13 | 发行版 :2.el7
  • 终端 = PuTTY 版本 0.74
  • 操作系统 = Microsoft Windows 10 Home | 版本 10.0.19041 内部版本 19041

我正在尝试的具体命令:

  • \colordiff -y --left-column /opt/projects/openidm/subscribers/conf/authentication.json /opt/projects/git/subscribers/conf/authentication.json

我尝试过的命令不会输出颜色:

  • \colordiff -y --left-column <File-1> <File-2>
  • \colordiff -y --left-column --difftype=diffy <File-1> <File-2>

将在终端中输出所有文件颜色的命令:

  • \colordiff <File-1> <File-2>
  • \colordiff -y --ignore-trailing-space <File-1> <File-2>
  • \colordiff -y --ignore-trailing-space --suppress-common-lines <File-1> <File-2>
  • \colordiff -y --left-column --ignore-trailing-space --suppress-common-lines <File-1> <File-2>

根据文件差异类型输出颜色的命令:

  • \colordiff -y --left-column --suppress-common-lines <File-1> <File-2>
  • \colordiff -y --left-column --suppress-common-lines --difftype=diffy <File-1> <File-2>
  • \colordiff -y --suppress-common-lines <File-1> <File-2>
  • \colordiff -y --suppress-common-lines --difftype=diffy <File-1> <File-2>
  • \colordiff -y <File-1> <File-2>
  • \colordiff -y --difftype=diffy <File-1> <File-2>
  • \diff -y <File-1> <File-2> | \colordiff
  • \diff -y <File-1> <File-2> | \colordiff --difftype=diffy

注意:我在大多数命令前面都加上了 以\确保不涉及别名。

更新:尝试比较多个文件后,发现我比较的原始文件末尾有一个空格,这导致了问题。也就是说,这个问题仍然需要我--suppress-common-lines在原始命令中添加内容,尽管在我的情况下,这只会从输出中删除 2 行。

更新 2:我向维护者提交了一份错误报告这里。希望这能对将来的某人有所帮助。

仅适用于 -y --left-column 的边缘情况

答案1

根据您的测试,colordiffCentOS 当前版本有一个奇怪的错误,其文件行尾包含空格。

在等待 的修复版本时colordiff,一个立即的修复方法是创建 的别名colordiff -y --ignore-trailing-space

相关内容