BeyondCompare 不会忽略行结尾的差异 (DOS/UNIX)

Gon*_*龚燿禄 4 windows unix diff file-comparison beyondcompare

我在 Windows 10 上使用 BeyondCompare 4 来比较两个包含数千个文件的目录。

它们基本相同,但一个是从 Windows 导出的,另一个是从 Linux 导出的。唯一的区别是

Windows (DOS) 在行尾使用 CR/LF,而 Unix 仅使用 LF。(LF 是 / 表示换行)

在 Beyond Compare 中,我们看到打开文件时的不同之处在于,一个说“PC”,另一个说“UNIX”(见下图):

在此输入图像描述

打开文件并关闭它后,Beyond Compare 现在将文件视为相等,并且如果我刷新,它们不会显示为不同。

由于我有数千个文件,并且不想手动打开所有文件,因此如何忽略那些差异仅与我在上图中提到的文件不同的文件?

尝试按“次要”,但效果不佳。


使用以下脚本

find . -type f -print0 | xargs -0 unix2dos
Run Code Online (Sandbox Code Playgroud)

通过从 UNIX 转换为 DOS 解决了这个问题,但我想知道如何在 Beyond Compare 中默认执行此操作,以及是否可能。

小智 8

Beyond Compare的文件夹比较默认比较文件大小和时间戳。

尽管其他文本内容相同,但一侧的 Windows CRLF 和另一侧的 Unix/Linux LF 会导致大小差异。当您双击文件时,会比较文本内容并发现它们相同。当您关闭文本比较时,文件夹比较将使用该比较的结果进行更新。

要比较Folder Compare中的文件,使用与在Beyond Compare的Folder Compare中查看文件内容相同的方法:

  1. 单击规则工具栏按钮(裁判图标)。
  2. 转到比较选项卡。
  3. 检查比较内容
  4. 选择基于规则的比较
  5. 单击“确定”。
  6. 在文件夹比较中,确保打开“查看”>“忽略不重要的差异” 。