Provided by: manpages-posix_2013a-2_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of
       this interface may differ (consult the corresponding Linux  manual  page  for  details  of
       Linux behavior), or the interface may not be implemented on Linux.

NAME

       comm — select or reject lines common to two files

SYNOPSIS

       comm [−123] file1 file2

DESCRIPTION

       The  comm  utility  shall  read  file1  and  file2, which should be ordered in the current
       collating sequence, and produce three text columns as output: lines only in  file1,  lines
       only in file2, and lines in both files.

       If  the  lines  in  both  files are not ordered according to the collating sequence of the
       current locale, the results are unspecified.

OPTIONS

       The comm utility shall conform to the Base Definitions  volume  of  POSIX.1‐2008,  Section
       12.2, Utility Syntax Guidelines.

       The following options shall be supported:

       −1        Suppress the output column of lines unique to file1.

       −2        Suppress the output column of lines unique to file2.

       −3        Suppress the output column of lines duplicated in file1 and file2.

OPERANDS

       The following operands shall be supported:

       file1     A pathname of the first file to be compared. If file1 is '−', the standard input
                 shall be used.

       file2     A pathname of the second file to be compared. If  file2  is  '−',  the  standard
                 input shall be used.

       If  both  file1  and  file2  refer  to  standard  input or to the same FIFO special, block
       special, or character special file, the results are undefined.

STDIN

       The standard input shall be used only if one of the file1  or  file2  operands  refers  to
       standard input. See the INPUT FILES section.

INPUT FILES

       The input files shall be text files.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of comm:

       LANG      Provide a default value for the internationalization variables that are unset or
                 null.  (See  the  Base  Definitions  volume  of   POSIX.1‐2008,   Section   8.2,
                 Internationalization   Variables  for  the  precedence  of  internationalization
                 variables used to determine the values of locale categories.)

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

       LC_COLLATE
                 Determine  the  locale for the collating sequence comm expects to have been used
                 when the input files were sorted.

       LC_CTYPE  Determine 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 and input files).

       LC_MESSAGES
                 Determine the locale that should be used to affect the format  and  contents  of
                 diagnostic messages written to standard error.

       NLSPATH   Determine the location of message catalogs for the processing of LC_MESSAGES.

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       The  comm  utility  shall produce output depending on the options selected. If the −1, −2,
       and −3 options are all selected, comm shall write nothing to standard output.

       If the −1 option is not selected, lines contained only in file1 shall be written using the
       format:

           "%s\n", <line in file1>

       If  the  −2  option  is  not selected, lines contained only in file2 are written using the
       format:

           "%s%s\n", <lead>, <line in file2>

       where the string <lead> is as follows:

       <tab>     The −1 option is not selected.

       null string
                 The −1 option is selected.

       If the −3 option is not selected, lines contained in both files shall be written using the
       format:

           "%s%s\n", <lead>, <line in both>

       where the string <lead> is as follows:

       <tab><tab>
                 Neither the −1 nor the −2 option is selected.

       <tab>     Exactly one of the −1 and −2 options is selected.

       null string
                 Both the −1 and −2 options are selected.

       If the input files were ordered according to the collating sequence of the current locale,
       the lines written shall be in the collating sequence of the original lines.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       The following exit values shall be returned:

        0    All input files were successfully output as specified.

       >0    An error occurred.

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       If the input files are not properly presorted, the output of comm might not be useful.

EXAMPLES

       If a file  named  xcu  contains  a  sorted  list  of  the  utilities  in  this  volume  of
       POSIX.1‐2008,  a  file named xpg3 contains a sorted list of the utilities specified in the
       X/Open Portability Guide, Issue 3, and a file named svid89 contains a sorted list  of  the
       utilities in the System V Interface Definition Third Edition:

           comm −23 xcu xpg3 | comm −23  svid89

       would  print a list of utilities in this volume of POSIX.1‐2008 not specified by either of
       the other documents:

           comm −12 xcu xpg3 | comm −12  svid89

       would print a list of utilities specified by all three documents, and:

           comm −12 xpg3 svid89 | comm −23  xcu

       would print a list of utilities specified by both XPG3 and the SVID, but not specified  in
       this volume of POSIX.1‐2008.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       cmp, diff, sort, uniq

       The  Base  Definitions  volume  of POSIX.1‐2008, Chapter 8, Environment Variables, Section
       12.2, Utility Syntax Guidelines

COPYRIGHT

       Portions of this text are reprinted and  reproduced  in  electronic  form  from  IEEE  Std
       1003.1,  2013  Edition,  Standard  for Information Technology -- Portable Operating System
       Interface (POSIX), The Open Group Base Specifications Issue 7, Copyright (C) 2013  by  the
       Institute  of  Electrical  and  Electronics  Engineers,  Inc and The Open Group.  (This is
       POSIX.1-2008 with the  2013  Technical  Corrigendum  1  applied.)  In  the  event  of  any
       discrepancy  between  this  version and the original IEEE and The Open Group Standard, the
       original IEEE and The Open Group Standard is the referee document. The  original  Standard
       can be obtained online at http://www.unix.org/online.html .

       Any  typographical  or  formatting errors that appear in this page are most likely to have
       been introduced during the conversion of the source files to man page  format.  To  report
       such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .