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.
--suppress-blank-empty
 Suppress space or tab before empty output lines.
-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 © 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://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


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.

openSUSE Logo

Contents