Previous | Table of Contents | Next |
DESCRIPTION
The external comm command compares two lists of sorted ASCII data (files). The default output is three columns ; lines only in file1, lines only in file2, and lines in both files. Lines common to both lists or lines only in one of the two lists may be displayed. The two lists may be stored in files or one may be the standard input. The possible output displays can consist of:
NOTE:
Remember, when using comm the files must be sorted in ASCII collating sequence. Thus they must also be ASCII files.
COMMAND FORMAT
Following is the general format of the comm command.
comm [ -123 ] - file2 comm [ -123 ] file1 file2
The first format is used to compare the standard input to a file (file2). The second compares two existing files. You may find it helpful to use the first format in a pipe.
Options
The following list describes the options that may be used to control how comm functions.
-1 | Suppress the displaying of column 1. Lines existing only in file1 are not displayed. |
-2 | Suppress the displaying of column 2. Lines existing only in file2 are not displayed. |
-3 | Suppress the displaying of column 3. Lines existing in both files are not displayed. |
Arguments
The following list describes the arguments that may be passed to the comm command.
- | Read from the standard input. The input is read from your keyboard or a pipe instead of a file. |
file1 | The first file to read input from and compare against file2. |
file2 | The second file to read input from and compare against file1. |
FURTHER DISCUSSION
Before you can use the comm command you must be sure that the input files are sorted. If they are not, comm will not function correctly. To sort files refer to Module 122.
You may find it useful to combine options to suppress multiple columns from displaying on your screen. For example, you may want to see only lines that exist in the second file. By using the following format,
cj> comm -13 file1 file2
you will find which lines of file2 do not exist in file1. This is useful for distinguishing which file has certain data in it.
RELATED COMMANDS
Refer to the cmp , diff , sort , and uniq commands described in modules 20, 33, 122, and 149.
RETURN CODES
The return codes of comm may be used to control conditional statements within shell scripts. The following list describes the meaning of each return code.
The files are identical. | |
1 | The files were NOT identical. |
2 | There was a problem reading a file or with an option you provided. |
APPLICATIONS
You can use the comm command to compare two lists of data. The two lists must reside in different files. You can compare for common items existing in both sets of data or for data that exists in one file and not the other.
One example would be to compare two lists of names . One file might contain members of a computer club who are single and a second file might contain members of the same club who work with UNIX. By using the command comm -23 singles computers you can list the singles who do not work with UNIX. Using the -12 option would list members who are single and work with UNIX. And the -13 option would list members who are not single and work with UNIX.
Since it can only function on ASCII files, it is limited to text type files.
TYPICAL OPERATION
In this activity you use the comm command to compare two files for like and dislike information. Begin at the shell prompt.
cj> cat > users Barbara David George Jill Scott Tina ^D
cj> cat > mgmt Andrew Barbara Kathy Scott ^D
cj> comm users mgmt Andrew Barbara David George Jill Kathy Scott Tina
cj> cat user comm -12 - mgmt Barbara Scott
Previous | Table of Contents | Next |