These docs are under active development and cover the v0.20 Kobicha security model.
On this page
reference 1 min read

comm

comm compares two sorted files and tells you which lines are unique to each and which are common to both.

comm [options] file1 file2

By default it prints three columns:

$ comm list-a.txt list-b.txt
            apple
banana
                        cherry
date
  • Column 1 — lines only in file1.
  • Column 2 — lines only in file2.
  • Column 3 — lines in both.

Each column is indented past the one before, so a line's column position tells you where it was found.

The input must be sorted

comm steps through both files together, so both must be sorted. On unsorted input the comparison is meaningless. Sort the files first with sort.

comm checks the ordering and reports a file that is out of order. --check-order forces the check; --nocheck-order disables it.

Showing only the columns you want

Each column can be switched off. The remaining columns close up to fill the gap.

Option Effect
-1 Suppress column 1 — hide lines unique to file1.
-2 Suppress column 2 — hide lines unique to file2.
-3 Suppress column 3 — hide lines common to both.

These combine to answer specific questions. comm -12 shows only the common lines — the intersection of the two files. comm -23 shows lines in file1 that are not in file2 — the difference.

Other options

Option Effect
--output-delimiter=STR Separate the columns with STR instead of spaces.
--total Print a final summary line with the count in each column.
-z, --zero-terminated Treat the NUL character as the line delimiter.

Exit status

Code Meaning
0 Success.
1 A file could not be read, or was not sorted.

See also