GNU diff3 — compare three files line by line

Examples (TL;DR)




Compare three files line by line.

Mandatory arguments to long options are mandatory for short options too.

-A, --show-all

output all changes, bracketing conflicts

-e, --ed

output ed script incorporating changes from OLDFILE to YOURFILE into MYFILE

-E, --show-overlap

like -e, but bracket conflicts

-3, --easy-only

like -e, but incorporate only nonoverlapping changes

-x, --overlap-only

like -e, but incorporate only overlapping changes


like -x, but bracket conflicts


append 'w' and 'q' commands to ed scripts

-m, --merge

output actual merged file, according to -A if no other options are given

-a, --text

treat all files as text


strip trailing carriage return on input

-T, --initial-tab

make tabs line up by prepending a tab


use PROGRAM to compare files

-L, --label=LABEL

use LABEL instead of file name (can be repeated up to three times)


display this help and exit

-v, --version

output version information and exit

The default output format is a somewhat human-readable representation of the changes.

The -e, -E, -x, -X (and corresponding long) options cause an ed script to be output instead of the default.

Finally, the -m (--merge) option causes diff3 to do the merge internally and output the actual merged file.  For unusual input, this is more robust than using ed.

If a FILE is '-', read standard input. Exit status is 0 if successful, 1 if conflicts, 2 if trouble.


Written by Randy Smith.

Reporting Bugs

Report bugs to:
GNU diffutils home page: <>
General help using GNU software: <>

See Also

cmp(1), diff(1), sdiff(1)

The full documentation for GNU is maintained as a Texinfo manual.  If the info and GNU programs are properly installed at your site, the command

info GNU

should give you access to the complete manual.

Referenced By

cmp(1), diff(1), merge(1), patch(1), rcsmerge(1), sdiff(1), srcredact(1), wiggle(1).

December 2018 diffutils 3.7