DIFF3(1) User Commands DIFF3(1)

# [NAME](#NAME)

diff3 - compare three files line by line

# [SYNOPSIS](#SYNOPSIS)

**diff3** \[*OPTION*]... *MYFILE OLDFILE YOURFILE*

# [DESCRIPTION](#DESCRIPTION)

Compare three files line by line.

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

[**-A**, **--show-all**](#A)

output all changes, bracketing conflicts

[**-e**, **--ed**](#e)

output ed script incorporating changes from OLDFILE to YOURFILE into MYFILE

[**-E**, **--show-overlap**](#E)

like **-e**, but bracket conflicts

**-3**, **--easy-only**

like **-e**, but incorporate only nonoverlapping changes

[**-x**, **--overlap-only**](#x)

like **-e**, but incorporate only overlapping changes

[**-X**](#X)

like **-x**, but bracket conflicts

[**-i**](#i)

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

[**-m**, **--merge**](#m)

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

[**-a**, **--text**](#a)

treat all files as text

[**--strip-trailing-cr**](#strip)

strip trailing carriage return on input

[**-T**, **--initial-tab**](#T)

make tabs line up by prepending a tab

[**--diff-program**=*PROGRAM*](#diff)

use PROGRAM to compare files

[**-L**, **--label**=*LABEL*](#L)

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

[**--help**](#help)

display this help and exit

[**-v**, **--version**](#v)

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.

# [AUTHOR](#AUTHOR)

Written by Randy Smith.

# [REPORTING BUGS](#REPORTING_BUGS)

Report bugs to: bug-diffutils@gnu.org  
GNU diffutils home page: &lt;https://www.gnu.org/software/diffutils/&gt;  
General help using GNU software: &lt;https://www.gnu.org/gethelp/&gt;

# [COPYRIGHT](#COPYRIGHT)

Copyright © 2025 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later &lt;https://gnu.org/licenses/gpl.html&gt;.  
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

# [SEE ALSO](#SEE_ALSO)

[**cmp**(1)](/man/os/diffutils/cmp.1), [**diff**(1)](/man/os/diffutils/diff.1), [**sdiff**(1)](/man/os/diffutils/sdiff.1)

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

**info diff3**

should give you access to the complete manual.

August 2026 diffutils 3.12

---

Document: diff3(1) from diffutils 3.12-r7 (Chainguard OS)
Source: https://git.savannah.gnu.org/git/diffutils.git
