|
|
compares the file named dog that is in the /tmp directory, with the file dog in the current directory.
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 numbers after the letters pertain to file2. In fact, by exchanging a for d and reading backward, one can find out in just the same way 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 ``>''.
diff recognizes block and character special files and FIFOs, and will not attempt to diff these files against regular files.
If both file1 and file2 are directories, there
are a number of possible messages that diff might
generate. If a file only occurs in one directory, a message, as in
the following example, will be displayed:
$ diff /u/nigel/devices /dev
Only in /u/nigel/devices: rfd01
where /u/nigel/devices is the directory pathname and
rfd01 is the filename present only in
/u/nigel/devices. If a filename is common to each
directory, but the two files are of different types, a message such
as the following will be displayed:
$ diff /u/nigel/devices /dev
File /u/nigel/devices/rfd01 is a regular file while file /dev/rfd01
is a character special file
diff recognizes the following options:
; echo '1,$p') | ed - $1
This script works by performing a sequence of editing operations on an original ancestral file. Specify this file as the first argument ($1) to the script. Subsequent arguments ($2,$3, ... are a sequence of ed scripts. These scripts are presumed to have been created in the order given on the command line.
The command to create the scripts is:
diff -e file_N file_N+1 > del_N
ed can recreate the N+1th version of
file_1 from the Nth version file_N
using the ed commands in del_N:
(cat del_N; echo '1,$p') | ed - file_N > file_N+1
Similarly, the command to recreate the fifth version
(file_5) from the ancestral file would be:
(cat del_1 del_2 del_3 del_4; echo '1,$p') | ed - file_1 > file_5
ed takes the commands from each del_
file,
performs them on the ancestral file file_1, and writes the
desired version to file_5.














''
must be output before each set of changes. The /bin/diff
version outputs traditional context to provide historic
compatibility with other vendors' versions of
patch(C).
The version of patch provided by The Santa Cruz Operation, Inc. can understand both context formats.
The -e and -f options cannot be used with the -h option.
Editing scripts produced under the -e or -f option do not always work correctly on lines consisting of a single dot ``.''.
ISO/IEC DIS 9945
2:1992, Information technology
Portable Operating System Interface (POSIX)
Part 2: Shell and Utilities (IEEE Std 1003.2
1992);
AT&T SVID Issue 2;
X/Open CAE Specification, Commands and Utilities, Issue 4, 1992.