Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ diff(1) — Unisoft V7

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cmp(1)

comm(1)

ed(1)

DIFF(1)  —  UNIX Programmer’s Manual

NAME

diff − differential file comparator

SYNOPSIS

diff [ −efb ] 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 either one of the files is represented by ’-’, the standard input is used. 

Moreover, one of the file names could be that of a directory: in this case the comparison is between two files of the same name.  Either the file or the directory can be named first for the diff, but the directory must be a sub-directory of file’s directory (i.e. below it in the tree structure). 

The output from a diff produces 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 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 connection with −e, the following shell program may help maintain multiple versions of a file.  Only an ancestral file ($1) and a chain of version-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. 

EXAMPLE

diff -e file1 file2

where file1 and file2 are two versions of the manual text for the cp command, produces:

35,41d
27c
In the second form, one or more
18,25c
existed; the mode of the source file
is used otherwise.
15c
The mode and owner of
10c
file ... directory
7c
file1 file2
1,3c
 .TH CP 1
 .SH NAME

Following this ed script would transform file1 into file2, line for line and character for character. 

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 creating lines consisting of a single ’.’. 

7th Edition  —  1/8/82

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026