You can use the diff3 command to look at differences between three files. Here are three sample files, repeated from Section 11.1:
For each set of differences, diff3 displays
a row of equal signs (====
) followed by 1, 2,
or 3, indicating which file is different; if no number is specified, then all
three files differ. Then, using ed-like
notation (Section
11.1), the differences are described for each file:
$ diff3 test1 test2 test3
====3
1:1c
2:1c
apples
3:0a
====
1:3c
walnuts
2:3c
grapes
3:2,3c
walnuts
chestnuts
With the output of diff3, it is easy to
keep track of which file is which; however, the prescription given is a little
harder to decipher. To bring these files into agreement, the first range of text
(after ====3
) shows that you would have to
add apples
at the beginning of the third file
(3:0a
). The second range tells you to
change line 3 of the second file to line 3 of the first file — change lines 2
and 3 of the third file, effectively dropping the last line.
The diff3 command also has a
-e
option for creating an editing script for ed. It doesn't work quite the way you might think.
Basically, it creates a script for building the first file from the second and
third files.
$ diff3 -e test1 test2 test3
3c
walnuts
chestnuts
.
1d
.
w
q
If you reverse the second and third files, a different script is produced:
$ diff3 -e test1 test3 test2
3c
grapes
.
w
q
As you might guess, this is basically the same output as doing a diff on the first and third files.
— DD