'diff' 的不同版本在比较 2 个相同文件时给出混合结果

Different versions of 'diff' giving mixed results when comparing 2 identical files

我有 2 个 HTML 文件,我认为它们是相同的,但 diff 的某些版本给出了相互矛盾的结果。

这 2 个文件已使用 PHP curl (http://php.net/manual/en/book.curl.php) 从远程 URL 下载。这些文件是在不同的日子下载的,但我相信内容没有改变,包括任何标记。申请的目的其实就是判断有没有变化。

文件大小相同;均为 358,341 字节。目视检查内容表明它们是相同的。

为确保我在本地计算机上使用 DiffMerge 的标记或其他内容没有差异,它报告文件相同。

但是,当我通过 ssh 进入 centOS 服务器并进行比较时,它显示了来自 运行 diff file1.html file2.html

的以下内容
    12159,12161c12159,12161
    <   
    < 
    < 
    ---
    >   
    > 
    > 
    12163,12172c12163,12172
    < 
    < 
    < 
    < 
    < 
    < 
    < 
    < 
    < 
    < 
    ---
    > 
    > 
    > 
    > 
    > 
    > 
    > 
    > 
    > 
    > 
    12174c12174
    < 
    ---
    > 

当我在文本编辑器中查看这些行号时,没有发现明显的差异。这个输出实际上意味着什么?

我还使用了基于 Web 的差异工具 https://github.com/chrisboulton/php-diff,它报告的行号完全相同,因为行号不同。然而,在 "side by side" 模式(file1.htmlfile2.html)下查看时的输出完全相同!

有没有人知道如何调试这个或者可能是什么问题?在这两种情况下,文件都是使用相同的脚本和方法下载的,据我所知,没有编码差异。

尝试:

diff -w file1.html file2.html

来自手册:

-w  --ignore-all-space  Ignore all white space.

白色 space 字符包括制表符、垂直制表符、换页符、回车 return 和 space;某些语言环境可能会将其他字符定义为白色 space。 source

用十六进制编辑器来比较这两个文件,我很确定它们是不一样的。你会看到不同之处。例如,wxHexEditor 是免费的、多平台的并且能够区分。