sdiff | After you've used diff for a while, the output is easy to read.
Sometimes, though, it's just easier to
see two files side-by-side.
The sdiff command does that.
(There's also a GNU version on the CD-ROM.)
Between the files, it prints < to point to lines that are only
in the first file, > for lines only in the second file, and
| for lines that are in both, but different.
By default, sdiff shows all the lines in both files.
Here's a fairly bogus example that compares two files that contain
the output of
who (51.4)
at different times: |
---|
$sdiff -w75 who1 who2
jake vt01 Sep 10 10:37 jake vt01 Sep 10 10:37 uunmv ttyi1i Sep 16 11:43 < jerry ttyi1j Sep 15 22:38 jerry ttyi1j Sep 15 22:38 jake ttyp1 Sep 9 14:55 jake ttyp1 Sep 9 14:55 jake ttyp2 Sep 9 15:19 | ellen ttyp2 Sep 16 12:07 > carolo ttyp5 Sep 16 13:03 alison ttyp8 Sep 9 12:49 alison ttyp8 Sep 9 12:49
To see only lines that are different, use -s (silent):
$sdiff -s -w75 who1 who2
2d1 uunmv ttyi1i Sep 16 11:43 < 5c4,5 jake ttyp2 Sep 9 15:19 | ellen ttyp2 Sep 16 12:07 > carolo ttyp5 Sep 16 13:03
The output lines are usually 130 characters long. That's too long for 80-column-wide screens; if you can put your terminal in 132-column mode or stretch your window, fine. If you can't, use the -w option to set a narrower width, like -w80 for 80-column lines; sdiff will show the first 37 characters from each line (it doesn't write quite all 80 columns). If you can set your printer to compressed type or have a very wide window, use an option like -w170 to get all of each line.
Article 28.6 explains a very useful feature of sdiff: building one file interactively from two files you compare.
-