comm (1)

Quick Reference

Select or reject lines common to two files. Both files must be sorted.

  • Produce three tab-separated columns: lines only in first file, lines only in second file and common lines:

comm {{file1}} {{file2}}

  • Print only lines common to both files:

comm -12 {{file1}} {{file2}}

  • Print only lines common to both files, reading one file from stdin:

cat {{file1}} | comm -12 - {{file2}}

  • Get lines only found in first file, saving the result to a third file:

comm -23 {{file1}} {{file2}} > {{file1_only}}

  • Print lines only found in second file, when the files aren't sorted:

comm -13 <(sort {{file1}}) <(sort {{file2}})


comm - compare two sorted files line by line


comm [ OPTION]... FILE1 FILE2


Compare sorted files FILE1 and FILE2 line by line.
When FILE1 or FILE2 (not both) is -, read standard input.
With no options, produce three-column output. Column one contains lines unique to FILE1, column two contains lines unique to FILE2, and column three contains lines common to both files.
suppress column 1 (lines unique to FILE1)
suppress column 2 (lines unique to FILE2)
suppress column 3 (lines that appear in both files)
check that the input is correctly sorted, even if all input lines are pairable
do not check that the input is correctly sorted
separate columns with STR
output a summary
-z, --zero-terminated
line delimiter is NUL, not newline
display this help and exit
output version information and exit
Note, comparisons honor the rules specified by 'LC_COLLATE'.


comm -12 file1 file2
Print only lines present in both file1 and file2.
comm -3 file1 file2
Print lines in file1 not in file2, and vice versa.


Written by Richard M. Stallman and David MacKenzie.


GNU coreutils online help: <>
Report comm translation bugs to <>


join(1), uniq(1)
Full documentation at: <>
or available locally via: info '(coreutils) comm invocation'


GNU coreutils 8.29.13-0a854
Source updated
December 2, 2018
Page created
February 9, 2018
Page generated
December 2, 2018