DIFF(1)

NAME
diff - compare files line by line

SYNOPSIS
diff [OPTION]... FILES

DESCRIPTION
Compare files line by line.

-i  --ignore-case
    Ignore case differences in file contents.

--ignore-file-name-case
    Ignore case when comparing file names.

--no-ignore-file-name-case
    Consider case when comparing file names.

-E  --ignore-tab-expansion
    Ignore changes due to tab expansion.

-b  --ignore-space-change
    Ignore changes in the amount of white space.

-w  --ignore-all-space
    Ignore all white space.

-B  --ignore-blank-lines
    Ignore changes whose lines are all blank.

-I RE  --ignore-matching-lines=RE
    Ignore changes whose lines all match RE.

--strip-trailing-cr
    Strip trailing carriage return on input.

-a  --text
    Treat all files as text.

-c  -C NUM  --context[=NUM]
    Output NUM (default 3) lines of copied context.

-u  -U NUM  --unified[=NUM]
    Output NUM (default 3) lines of unified context.

--label LABEL
    Use LABEL instead of file name.

-p  --show-c-function
    Show which C function each change is in.

-F RE  --show-function-line=RE
    Show the most recent line matching RE.

-q  --brief
    Output only whether files differ.

-e  --ed
    Output an ed script.

--normal
    Output a normal diff.

-n  --rcs
    Output an RCS format diff.

-y  --side-by-side
    Output in two columns.

-W NUM  --width=NUM
    Output at most NUM (default 130) print columns.

--left-column
    Output only the left column of common lines.

--suppress-common-lines
    Do not output common lines.

-D NAME  --ifdef=NAME
    Output merged file to show `#ifdef NAME' diffs.

--GTYPE-group-format=GFMT
    Similar, but format GTYPE input groups with GFMT.

--line-format=LFMT
    Similar, but format all input lines with LFMT.

--LTYPE-line-format=LFMT
    Similar, but format LTYPE input lines with LFMT.

LTYPE is `old', `new', or `unchanged'.
    GTYPE is LTYPE or `changed'.

    GFMT may contain:

%<  lines from FILE1

%>  lines from FILE2

%=  lines common to FILE1 and FILE2

%[-][WIDTH][.[PREC]]{doxX}LETTER
    printf-style spec for LETTER

    LETTERs are as follows for new group, lower case for old group:

F   first line number

L   last line number

N   number of lines = L-F+1

E   F-1

M   L+1

    LFMT may contain:

%L  contents of line

%l  contents of line, excluding any trailing newline

%[-][WIDTH][.[PREC]]{doxX}n
    printf-style spec for input line number

    Either GFMT or LFMT may contain:

%%  %

%c'C'
    the single character C

%c'\OOO'
    the character with octal code OOO

-l  --paginate
    Pass the output through `pr' to paginate it.

-t  --expand-tabs
    Expand tabs to spaces in output.

-T  --initial-tab
    Make tabs line up by prepending a tab.

--tabsize=NUM
    Tab stops are every NUM (default 8) print columns.

-r  --recursive
    Recursively compare any subdirectories found.

-N  --new-file
    Treat absent files as empty.

--unidirectional-new-file
    Treat absent first files as empty.

-s  --report-identical-files
    Report when two files are the same.

-x PAT  --exclude=PAT
    Exclude files that match PAT.

-X FILE  --exclude-from=FILE
    Exclude files that match any pattern in FILE.

-S FILE  --starting-file=FILE
    Start with FILE when comparing directories.

--from-file=FILE1
    Compare FILE1 to all operands. FILE1 can be a directory.

--to-file=FILE2
    Compare all operands to FILE2. FILE2 can be a directory.

--horizon-lines=NUM
    Keep NUM lines of the common prefix and suffix.

-d  --minimal
    Try hard to find a smaller set of changes.

--speed-large-files
    Assume large files and many scattered small changes.

-v  --version
    Output version info.

--help
    Output this help.

FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'. If --from-file or --to-file is given, there are no restrictions on FILES. If a FILE is `-', read standard input. Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.

AUTHOR
Written by Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, and Len Tower.

REPORTING BUGS
Report bugs to <bug-gnu-utils@gnu.org>.

COPYRIGHT
Copyright © 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

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

    info diff

should give you access to the complete manual.