comm - compare two sorted files line by line and write to standard output: the lines that are common, plus the lines that are unique.
comm [options]... File1 File2
Before 'comm' can be used, the input files must be sorted using the collating sequence specified by the 'LC_COLLATE' locale, with trailing newlines significant. If an input file ends in a non-newline character, a newline is silently appended. The 'sort' command with no options always outputs a file that is suitable input to 'comm'. With no options, 'comm' produces 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. Columns are separated by a single TAB character.
The options -1, -2, and -3 suppress printing of the corresponding columns. Unlike some other comparison utilities, 'comm' has an exit status that does not depend on the result of the comparison. Upon normal completion 'comm' produces an exit code of zero. If there is an error it exits with nonzero status.
|-1||suppress lines unique to file1.|
|-2||suppress lines unique to file2.|
|-3||suppress lines that appear in both files.|
Show the lines unique to words.txt
$ cat words.txt Apple Banana Orange India US Canada $ cat countries.txt India US Canada $ comm -23 < (sort words.txt | uniq) < (sort countries.txt | uniq) Apple Banana Orange
Show the lines common to words.txt and countries.txt.
$ comm -12 < (sort words.txt | uniq) < (sort countries.txt | uniq) India US CanadaPrint