比较忽略数字差异的文件

Compare files ignoring numeric differences

我使用的代码库有很多重复。似乎文件被复制然后稍作修改,比如在字符串输出和创建时间戳中增加版本号。

有没有办法告诉 git diff 忽略只有特定数字或数字被另一个数字或数字替换的行 (a)(例如 version_5version_6)或 ( b) 其中区别仅在于数字?

我知道 git diff 非常灵活,我读过 this answer 关于忽略注释的内容,但我不知道如何找出两行之间的区别(例如,如果只是不同的数字)。

无法告诉 git diff 忽略数字更改。

您可以使用 sed pre-filter 文件,然后将它们传递给常规 diff 命令。例如,这里我们使用sed将所有数字转换为_,并将文件的当前版本与父commit中的版本进行比较:

diff -u \
  <(git show HEAD:path/to/file | sed 's/[0-9]/_/g') \
  <(git show HEAD^:path/to/file | sed 's/[0-9]/_/g')