- select or reject lines common to two files
/usr/bin/comm [-options] file1 file2
comm reads two files file1 and file2 which should be ordered in the collating sequence of the current locale, and produces three text columns as output:
Lines only in file1.
Lines only in file2.
Lines in both files.
If lines in either file are not ordered according to the collating sequence of the current locale, the results are not specified.
If either file1 or file2 is -, comm uses standard input starting at the current location.
The following options are supported:
Suppresses the output column of lines unique to file1.
Suppresses the output column of lines unique to file2.
Suppresses the output column of lines duplicated in file1 and file2.
The following operands are supported:
A path name of the first file to be compared. If file1 is -, the standard input is used.
A path name of the second file to be compared. If file2 is -, the standard input is used.
See largefile(5) for the description of the behavior of comm when encountering files greater than or equal to 2 Gbyte (231 bytes).
示例 1 Printing a list of utilities specified by files
If file1, file2, and file3 each contain a sorted list of utilities, the command
example% comm -23 file1 file2 | comm -23 - file3
prints a list of utilities in file1 not specified by either of the other files. The entry:
example% comm -12 file1 file2 | comm -12 - file3
prints a list of utilities specified by all three files. And the entry:
example% comm -12 file2 file3 | comm -23 -file1
prints a list of utilities specified by both file2 and file3, but not specified in file1.
See environ(5) for descriptions of the following environment variables that affect the execution of comm: LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, and NLSPATH.
The following exit values are returned:
All input files were successfully output as specified.
An error occurred.
See attributes(5) for descriptions of the following attributes: