比较忽略数字差异的文件
Compare files ignoring numeric differences
我使用的代码库有很多重复。似乎文件被复制然后稍作修改,比如在字符串输出和创建时间戳中增加版本号。
有没有办法告诉 git diff
忽略只有特定数字或数字被另一个数字或数字替换的行 (a)(例如 version_5
和 version_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')
我使用的代码库有很多重复。似乎文件被复制然后稍作修改,比如在字符串输出和创建时间戳中增加版本号。
有没有办法告诉 git diff
忽略只有特定数字或数字被另一个数字或数字替换的行 (a)(例如 version_5
和 version_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')