Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bdiff(1)

cmp(1)

comm(1)

diff(1)

ed(1)

/red(1)

diff3(1)  —  Commands

NAME

diff3 - Compares three files

SYNOPSIS

diff3 [-e | -x | -E | -X | -3] file1 file2 file3

The diff3 command reads three versions of a file and writes to standard output the ranges of text that differ. 

FLAGS

-eCreates an edit script for use with the ed command to incorporate into file1 all changes between file2 and file3 (that is, the changes that normally would be flagged ==== and ====3). 

-xProduces an edit script to incorporate only changes flagged ====. 

-E,-XThese are similar to -e and -x, respectively, but treat overlapping changes (that is, changes that are flagged ==== in the normal listing) differently.  The overlapping lines from both files are inserted by the edit script, bracketed by <<<<<< and >>>>>> lines.  The -E flag is used by RCS merge to ensure that overlapping changes in the merged files are preserved and brought to someone’s attention. 

-3Produces an edit script to incorporate only changes flagged ====3. 

DESCRIPTION

The diff3 command reads three versions of a file and writes to standard output the ranges of text that differ, flagged with the following codes:

====All three files differ. 

====1file1 differs. 

====2file2 differs. 

====3file3 differs. 

The type of change needed to convert a given range of a given file to match another file is indicated in one of these two ways in the output:

file  :  number1 a
Text is to be added after line number number1 in file, where file is 1, 2, or 3. 

file  :  number1[,number2]  c
Text in the range line number1 to line number2 is to be changed.  If number1 = number2, the range may be abbreviated to number1. 

The original contents of the range follow immediately after a c indication.  When the contents of two files are identical, diff3 does not show the contents of the lower-numbered file, although it shows the location of the identical lines for each. 

EXAMPLES

To list the differences among three files, enter:

diff3  fruit.a  fruit.b  fruit.c

fruit.a, fruit.b, and fruit.c contain the following data:

fruit.a:

banana
grape
kiwi
lemon
mango
orange
peach
pare

fruit.b:

apple
banana
grapefruit
kiwi
orange
peach
pear

fruit.c:

grape
grapefruit
kiwi
lemon
mango
orange
peach
pear

The output from diff3 shows the differences between these files as follows.  (The comments on the right do not appear in the output.) 

====All three files are different.
1:1,2c- Lines 1 and 2 of the first file, fruit.a
  banana
  grape
2:1,3c- Lines 1 through 3 of fruit.b
  apple
  banana
  grapefruit
3:1,2c- Lines 1 and 2 of fruit.c
  grape
  grapefruit
====2The second file, fruit.b, is different.
1:4,5c- Lines 4 and 5 are the same in fruit.a and fruit.c.
2:4a
3:4,5c- To make fruit.b look the same, add text after line 4.
  lemon
  mango
====1The first file, fruit.a, is different.
1:8c
  pare
2:7c- Line 7 of fruit.b and line 8 of fruit.c are the same.
3:8c
  pear

FILES

/usr/lbin/diff3progHelper program. 

NOTES

Editing scripts produced by the -e flag cannot create lines consisting only of a single . (dot). 

RELATED INFORMATION

Commands:  bdiff(1), cmp(1), comm(1), diff(1), ed(1)/red(1). 

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