Это своего рода способ, которым diff группирует вещи.В вашей группе changed
вы печатаете новое изменение, а не старое, которое будет
U 2
3
Таким образом, группировка, которую видит diff:
`1 -> 1` unchanged
`2,3 -> 2a` changed
`4,5 -> 4,5` unchanged
` -> 6` new
В порядкечтобы diff сгруппировал совпадение как «старое», должно быть неизменным до и после.Итак, если file2 был такой:
1a
2
4
5
6
И вы запустили ту же команду diff, вы получите это:
U 1a
D 3
I 6
Поскольку есть 2 -> 2
и 4 -> 4
это не изменяется, поэтому недостающие 3 группируются как «старые».