我有两个文件,都是代码的输出,我通过这些代码cut
仅查看每行的前 26 个字符。这两个文件都是代码测量的参数列表,例如“总横截面”或“中子寿命”,以及代码使用的选项(如“MPI_TASKS”或“COMPILE_DATE”),因此 file1 如下所示:
param1
param2
...
param2000
File2看起来基本相同,但是删除或更改了很多参数,并且添加了一些不同的参数。
没有报告这些更改/添加/删除发生的位置,而是diff
告诉我第 12 行到第 1750 行file1
已被删除,然后发现其余文件有大约 300 行差异。即使在这些差异中,它也只报告了其中大约 50 个的变化,其余的则报告为添加/删除。
我真的很困惑,不知道为什么diff
会这样。我尝试过使用一些选项,例如-aBCHw
.
我可以使用更好的实用程序吗?该cut
实用程序是否会造成问题?
答案1
默认情况下,diff
假设一些语境围绕差异的每个部分,称为块。如果你减少上下文(使用-C
选项),您可以减少块大小并使其不太可能将大(重叠)块报告为大差异。