---
name: "diff3"
section: "1"
platform: "linux"
package: "diffutils"
version: "3.12-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/diff3"
---

# diff3(1)

compare three files line by line

## NAME

diff3 - compare three files line by line

## SYNOPSIS

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

## DESCRIPTION

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

- **-X**

  like **-x**, but bracket conflicts

- **-i**

  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-cr**

  strip trailing carriage return on input

- **-T**, **--initial-tab**

  make tabs line up by prepending a tab

- **--diff-program**=*PROGRAM*

  use PROGRAM to compare files

- **-L**, **--label**=*LABEL*

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

- **--help**

  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.

## AUTHOR

Written by Randy Smith.

## REPORTING BUGS

Report bugs to: bug-diffutils@gnu.org\
 GNU diffutils home page: \<https://www.gnu.org/software/diffutils/\>\
 General help using GNU software: \<https://www.gnu.org/gethelp/\>

## COPYRIGHT

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

## SEE ALSO

[**cmp**(1)](/cmp/1.md), [**diff**(1)](/diff/1.md), [**sdiff**(1)](/sdiff/1.md)

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.
