我要将两个文件与diff
进行比较。更改的行应该得到前缀“U”,新行“I”和删除的“D”:
文件1:
1
2
3
4
5
file2的:
1
2a
4
5
6
diff --old-group-format="D %<" \
--new-group-format="I %>" \
--changed-group-format="U %>" \
--unchanged-group-format="" file1 file2
输出结果为:
U 2a
I 6
但是在哪里
D 3
答案 0 :(得分:7)
这是差异分组的方式。在您的changed
群组中,您正在打印新的更改,而不是旧的更改,这将是
U 2
3
所以不同的分组是:
`1 -> 1` unchanged
`2,3 -> 2a` changed
`4,5 -> 4,5` unchanged
` -> 6` new
为了让diff将匹配组合为“old”,必须在之前和之后保持不变。所以如果file2是这样的:
1a
2
4
5
6
你运行相同的diff命令,你会得到这个:
U 1a
D 3
I 6
因为2 -> 2
和4 -> 4
未更改,所以缺少的3会被归为“旧”。