diff 只检测大小写变化

diff to detect only case changes

是否有一种简单的方法可以在文件的两个版本之间进行区分,仅显示因更改为 upper-/lowercase 而不同的 lines/words?应省略所有其他差异。

背景:我有一个 VBA 项目在版本控制下 (git),微软的编辑器倾向于 change casing 每次声明一个新变量。我想识别(并可能计算)此类更改以防止它们被提交。

根据建议from this answer,我使用基本的 Linux 脚本工具按如下方式完成:

GIT_EXTERNAL_DIFF='diff -p -U 0 "" "" | cat #' git diff --ext-diff >  cdiff
GIT_EXTERNAL_DIFF='diff -ip -U 0 "" "" | cat #' git diff --ext-diff > idiff

diff idiff cdiff | grep '^> [+-] ' 

代码首先生成 case-sensitive diff cdiff,然后生成 case-insensitive diff idiff。 case-only 更改包括 cdiff 中的行,这些行不包含在 idiff.