git word-diff-regex用于CSV文件

pnwntuvh  于 2023-09-29  发布在  Git
关注(0)|答案(1)|浏览(97)

我试图比较两个CSV文件,我知道更改将在一个列中。
如果我像这样比较,结果会显示红色和绿色文本,用于实际更改的列之前和之后的未更改文本部分:

git diff --no-index --word-diff=color file1.csv file2.csv

我正在尝试使用word-diff-regex将“word”定义为后跟逗号的任何文本。到目前为止,我还没有找到正确的表达方式。

# This doesn't work properly    
git diff --no-index --word-diff=color --word-diff-regex=".*," file1.csv file2.csv

什么是正确的word-diff-regex表达式来显示对单个CSV列的更改?

fykwrbwg

fykwrbwg1#

-word-diff-regex希望得到的东西是你的话,忽略不匹配的东西。也不需要你的报价。一个只有.的正则表达式可以工作-它将把每个字符作为一个单独的变化。
git diff --no-index --word-diff=color --word-diff-regex=. file1.csv file2.csv
或者[^,]+的正则表达式可以用于CSV,它会将所有不是逗号的内容视为更改,并且+使其将它们分组为一个单词。但是如果添加或删除一个字段,有时会做奇怪的事情,所以我最近的方法是,[^,]+的正则表达式,所以它捕获添加的字段沿着逗号,只有当第一个字段被更改时才不起作用。
git diff --no-index --word-diff=color --word-diff-regex=,[^,]+ file1.csv file2.csv

相关问题