我试图比较两个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列的更改?
1条答案
按热度按时间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