unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



diff(1)								      diff(1)



NAME

  diff - Compares text files

SYNOPSIS

  diff [-c  | -C number	| -e  |	-f  | -h  | -n]	[-bilrstw] [-Sfile] direc-
  tory1	directory2

  diff [-c  | -C number	| -e  |	-f  | -h  | -n]	[-bitw]	file1 file2

  diff [-Dstring] [-bitw] file1	file2

STANDARDS

  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  diff:	 XCU5.0

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.

OPTIONS

  The -c, -C, -e, -f, -h, and -n options are mutually exclusive.

  The -r, -s, and -S options can be specified with directory comparisons
  only.

  The -b, -i, -l, -t, and -w options can be used in combination	with any oth-
  ers and in both file and directory comparisons.

  -b  Causes trailing white space at the end of	a line to be treated as	a
      single newline character.

  -c  Produces a listing with the default number of lines of context (3
      lines).  The output lists	the files being	compared and their last
      modification dates, then lists the differing lines.  Lines that are
      changed from one file to the other are marked in both files with an !
      (exclamation point).  Changes that lie within the	specified number of
      lines of each other are grouped together on output.

  -C number
      Produces output that provides number lines of context (where number is
      a	positive decimal integer).

  -D string
      [Tru64 UNIX]  Causes diff	to create a merged version of file1 and	file2
      on the standard output, with C preprocessor controls included.  Thus, a
      compilation of the result	without	defining string	is equivalent to com-
      piling file1, while defining string yields file2.

  -e  Produces a script	of a, c, d, and	s commands for the editor ed, which
      can recreate file2 from file1.  In connection with -e, the following
      shell program can	help maintain multiple versions	of a file. Only	an
      ancestral	file ($1) and a	chain of version-to-version ed scripts ($2,
      $3, ...) made by diff need be on hand.  A	"latest	version" appears on
      the standard output.


	   (shift; cat $*; echo	'1,$p')	| ed - $1

      [Tru64 UNIX]  Extra commands are added to	the output when	comparing
      directories with -e; the result is a sh script for converting text
      files common to the directories from their state in directory1 to	their
      state in directory2.

  -f  Produces a script	similar	to that	of -e, not useful with ed, and in the
      opposite order.

  -h  [Tru64 UNIX]  Performs a faster comparison.  This	option only works
      when the changed sections	are short and well separated, but it does
      work on files of any length.  The	-e and -f options are not available
      when you use the -h option.

  -i  [Tru64 UNIX]  Ignores the	case of	letters.  For example, A is con-
      sidered identical	to a.

  -l  [Tru64 UNIX]  Specifies long output format; each text file diff listing
      is piped through pr to paginate it, other	differences are	remembered
      and summarized after all text file differences are reported.  (Direc-
      tory comparisons only.)

  -n  [Tru64 UNIX]  Produces a script similar to that of -e, but in the	oppo-
      site order and with a count of changed lines on each insert or delete
      command.	This is	the form used by the revision control system (RCS).

  -r  Checks files in common subdirectories recursively.

  -s  [Tru64 UNIX]  Reports identical files, which are otherwise not men-
      tioned.

  -Sfile
      [Tru64 UNIX]  Starts a directory diff in the middle, beginning with
      file.  (Directory	comparisons only.)

  -t  [Tru64 UNIX]  Expands tabs in output lines.  Normal or -c	output adds
      characters to the	front of each line that	can affect the indentation of
      the original source lines	and make the output listing difficult to
      interpret.  This option preserves	the original source's indentation.

  -w  [Tru64 UNIX]  Is similar to -b, but causes whitespace (spaces and	tabs)
      to be ignored.  For example, if (	a == b ) is considered identical to
      if(a==b).

OPERANDS

  directory1

  directory2

  file1

  file2
      The path names of	files or directories to	be compared. See the DESCRIP-
      TION section for the permissible combinations.  If any operand is
      specified	as - (hyphen), standard	input is read at that point.


DESCRIPTION





  Input	Options


  If neither file1 nor file2 is	a directory, then either can be	given as -
  (dash), in which case	the standard input is used.  If	file1 is a directory
  and file2 is a file, or vice versa, a	file in	the specified directory	with
  the same name	as the specified file is used.

  If both arguments are	directories, diff sorts	the contents of	the direc-
  tories by name, and then runs	the regular diff file algorithm	on text	files
  that are different.  Binary files that differ, common	subdirectories,	and
  files	that appear in only one	directory are also listed.

  Output Options


  There	are several choices for	output format.	The default output format
  contains lines of these forms:

       number1 a number2,number3
       number1,number2 d number3
       number1,number2 c number3,number4

  These	lines resemble ed commands to convert file1 into file2.	 In these
  lines, the command a indicates that a	line or	lines were added to one	of
  the files; d indicates that a	line or	lines were deleted; and	c indicates
  that a line or lines were changed.  The numbers after	the letters pertain
  to file2.  In	fact, by exchanging a for d and	reading	backward one can
  ascertain equally how	to convert file2 into file1.  As in ed,	identical
  pairs	where number1 =	number2	or number3 = number4 are abbreviated as	a
  single number.

  Following each of these lines	come all the lines that	are affected in	the
  first	file, flagged by <&lt; (left angle bracket), then all the lines that are
  affected in the second file, flagged by >&gt; (right angle bracket).

  Except in rare circumstances,	diff finds the smallest	sufficient set of
  file differences.

NOTES

   1.  [Tru64 UNIX]  Editing scripts produced by the -e	or -f options cannot
       create lines consisting of a single .  (dot) character.

   2.  [Tru64 UNIX]  Block, character, or FIFO special files cannot be used
       with diff because they cause the	command	to exit.

   3.  [Tru64 UNIX]  If	lines at the end of a file are changed and other
       lines added, diff output	may show this as a delete and add, as a
       change, or as a change and add. That is,	diff is	not expected to	know
       what happened.









EXIT STATUS

  The following	exit values are	returned:

  0   No differences.

  1   Differences found.

  >&gt;1  An error occurred.

EXAMPLES

   1.  To compare two files, enter:
	    diff chap1.bak chap1

       This displays the differences between the files chap1.bak and chap1.

   2.  To compare two files, ignoring differences in the amount	of white
       space, enter:
	    diff -b prog.c.bak prog.c

       If two lines differ only	in the number of spaces	and tabs between
       words, then the diff command considers them to be the same.

   3.  To create a file	containing commands that the ed	command	can use	to
       reconstruct one file from another, enter:
	    diff -e ch2	ch2.old	>&gt; new.old.ed

       This creates a file named new.to.old.ed that contains the ed subcom-
       mands to	change chap2 back into the version of the text found in
       chap2.old.  In most cases, new.to.old.ed	is a much smaller file than
       chap2.old.

   4.  You can save disk space by deleting chap2.old, and you can reconstruct
       it at any time by entering:
	    (cat new.old.ed ; echo '1,$p') | ed	- ch2 >&gt;	ch2.old

       The commands in parentheses add 1,$p to the end of the editing com-
       mands sent to the ed editor.  The 1,$p causes the ed command to write
       the file	to standard output after editing it.  This modified command
       sequence	is then	piped to the ed	command	( | ed ), and the editor
       reads it	as standard input.  The	- option causes	the ed command not to
       display the file	size and other extra information, since	it would be
       mixed with the text of chap2.old.

ENVIRONMENT VARIABLES

  The following	environment variables affect the execution of diff:

  LANG
      Provides a default value for the internationalization variables that
      are unset	or null. If LANG is unset or null, the corresponding value
      from the default locale is used.	If any of the internationalization
      variables	contain	an invalid setting, the	utility	behaves	as if none of
      the variables had	been defined.

  LC_ALL
      If set to	a non-empty string value, overrides the	values of all the
      other internationalization variables.

  LC_CTYPE
      Determines the locale for	the interpretation of sequences	of bytes of
      text data	as characters (for example, single-byte	as opposed to multi-
      byte characters in arguments).

  LC_MESSAGES
      Determines the locale for	the format and contents	of diagnostic mes-
      sages written to standard	error.

  NLSPATH
      Determines the location of message catalogues for	the processing of
      LC_MESSAGES.

  TZ  Determines the locale for	affecting the time zone	used for calculating
      the timestamps written with the -c and -C	options.

FILES

  /usr/lbin/diffh
      For the -h option.

  /usr/bin/pr
      For the -l option.

SEE ALSO

  Commands:  bdiff(1), cmp(1), comm(1),	diff3(1), ed(1), pr(1)

  Standards:  standards(5)