Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ diff(1) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bdiff(1)

cmp(1)

comm(1)

ed(1)

pr(1)



diff(1)                  USER COMMANDS                    diff(1)



NAME
     diff - differential file comparator

SYNOPSIS
     diff [ -bitw ] [ -c|-e|-f |-h|-n ] filename1 filename2
     diff [ -bitw ] [ -C number ] filename1 filename2
     diff [ -bitw ] [ -D string ] filename1 filename2
     diff [ -bitw ] [ -c|-e| -f|-h|-n ] [-l] [-r] [-s] [ -S  name
     ] directory1 directory2

DESCRIPTION
     diff tells what lines must be changed in two files to  bring
     them  into  agreement.   If  filename1 (filename2) is -, the
     standard input is  used.   If  filename1  (filename2)  is  a
     directory,  then  a  file  in  that  directory with the name
     filename2 (filename1) is used.  The normal  output  contains
     lines of these forms:

          n1 a n3,n4
          n1,n2 d n3
          n1,n2 c n3,n4

     These lines resemble ed commands to convert  filename1  into
     filename2.    The  numbers  after  the  letters  pertain  to
     filename2.  In fact, by exchanging a for d and reading back-
     ward one may ascertain equally how to convert filename2 into
     filename1.  As in ed, identical pairs, where n1 = n2 or n3 =
     n4, are abbreviated as a single number.

     Following each of these lines come all the  lines  that  are
     affected  in the first file flagged by <, then all the lines
     that are affected in the second file flagged by >.

     -b   Ignores trailing blanks (spaces and  tabs)  and  treats
          other strings of blanks as equivalent.

     -i   Ignores the case of letters; for example, `A' will com-
          pare equal to `a'.

     -t   Expands TAB characters in output lines.  Normal  or  -c
          output adds character(s) to the front of each line that
          may adversely affect the indentation  of  the  original
          source  lines  and  make  the output lines difficult to
          interpret.  This  option  will  preserve  the  original
          source's indentation.

     -w   Ignores all  blanks  (SPACE  and  TAB  characters)  and
          treats  all  other strings of blanks as equivalent; for
          example,  `if ( a == b )'   will   compare   equal   to
          `if(a==b)'.





                                                                1





diff(1)                  USER COMMANDS                    diff(1)



     The following options are mutually exclusive:

     -c   Produces a listing of differences with three  lines  of
          context.   With  this  option output format is modified
          slightly:  output begins  with  identification  of  the
          files  involved  and  their  creation  dates, then each
          change is separated by a line with a  dozen  *'s.   The
          lines removed from filename1 are marked with '-'; those
          added to filename2 are  marked  '+'.   Lines  that  are
          changed  from  one file to the other are marked in both
          files with '!'.

     -C number
          Produces a listing of  differences  identical  to  that
          produced by -c with number lines of context.

     -e   Produces a script of a, c, and d commands for the  edi-
          tor  ed,  which will recreate filename2 from filename1.
          In connection with -e, the following shell program  may
          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

     Except in rare circumstances, diff finds a  smallest  suffi-
     cient set of file differences.

     -f   Produces a similar script, not useful with ed,  in  the
          opposite order.

     -h   Does a fast, half-hearted  job.   It  works  only  when
          changed  stretches  are  short  and well separated, but
          does work on files of unlimited length.  Options -e and
          -f are unavailable with -h.

     -n   Produces a script similar to -e, but  in  the  opposite
          order  and with a count of changed lines on each insert
          or delete command.

     -D string
          Creates a merged version  of  filename1  and  filename2
          with  C preprocessor controls included so that a compi-
          lation  of  the  result  without  defining  string   is
          equivalent   to  compiling  filename1,  while  defining
          string will yield filename2.

     The following options are used for comparing directories:

     -l   Produce output in long format.  Before the  diff,  each
          text file is piped through pr(1) to paginate it.  Other



                                                                2





diff(1)                  USER COMMANDS                    diff(1)



          differences are remembered  and  summarized  after  all
          text file differences are reported.

     -r   Applies  diff  recursively  to  common   subdirectories
          encountered.

     -s   Reports files that are the identical; these  would  not
          otherwise be mentioned.

     -S name
          Starts a directory diff in the middle,  beginning  with
          the file name.

FILES
     /tmp/d?????
     /usr/lib/diffh for -h
     /usr/bin/pr

SEE ALSO
     bdiff(1), cmp(1), comm(1), ed(1), pr(1).

DIAGNOSTICS
     Exit status is 0 for no differences, 1 for some differences,
     2 for trouble.

NOTES
     Editing scripts produced under the -e or -f option are naive
     about  creating  lines  consisting  of  a single period (.).
     Missing newline at end of file X
     indicates that the last line of file X did not have  a  new-
     line.   If the lines are different, they will be flagged and
     output; although the output will seem to indicate  they  are
     the same.






















                                                                3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026