term% cat index.txt DIFF(1) General Commands Manual DIFF(1)
NAME
diff - differential file comparator
SYNOPSIS
diff [ -efbh ] file1 file2
DESCRIPTION
Diff tells what lines must be changed in two files to bring them into
agreement. If file1 (file2) is ‘-', the standard input is used. If
file1 (file2) is a directory, then a file in that directory whose file-
name is the same as the file-name of file2 (file1) is used. The normal
output contains lines of these forms:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
These lines resemble ed commands to convert file1 into file2. The num‐
bers after the letters pertain to file2. In fact, by exchanging ‘a'
for ‘d' and reading backward one may ascertain equally how to convert
file2 into file1. As in ed, identical pairs where n1 = n2 or n3 = n4
are abbreviated as a single number.
Following each of these lines come all the lines that are affected in
the first file flagged by ‘<', then all the lines that are affected in
the second file flagged by ‘>'.
The -b option causes trailing blanks (spaces and tabs) to be ignored
and other strings of blanks to compare equal.
The -e option produces a script of a, c and d commands for the editor
ed, which will recreate file2 from file1. The -f option produces a
similar script, not useful with ed, in the opposite order. In connec‐
tion with -e, the following shell program may help maintain multiple
versions of a file. Only an ancestral file ($1) and a chain of ver‐
sion-to-version ed scripts ($2,$3,...) made by diff need be on hand. A
‘latest version' appears on the standard output.
(shift; cat $*; echo ´1,$p´) ⎪ ed - $1
Except in rare circumstances, diff finds a smallest sufficient set of
file differences.
Option -h does a fast, half-hearted job. It works only when changed
stretches are short and well separated, but does work on files of un‐
limited length. Options -e and -f are unavailable with -h.
FILES
/tmp/d?????
/usr/lib/diffh for -h
SEE ALSO
cmp(1), comm(1), ed(1)
DIAGNOSTICS
Exit status is 0 for no differences, 1 for some, 2 for trouble.
BUGS
Editing scripts produced under the -e or -f option are naive about cre‐
ating lines consisting of a single ‘.'.
DIFF(1)