Common - compare two sorted files line by line and write to standard output:
the lines that are common, plus the lines that are unique.
Syntax comm [options]... File1 File2 Options -1 suppress lines unique to file1 -2 suppress lines unique to file2 -3 suppress lines that appear in both files A file name of '-' means standard input.
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.
$ comm -23 <(sort words.txt | uniq) <(sort countries.txt | uniq)
If the file words.txt contains a subset of countries.txt then the above will return nothing.
If the file words.txt contains items that don't exist in countries.txt then the above will return those unique items.
To return the lines that are in both words.txt and countries.txt use:
$ comm -12 <(sort words.txt | uniq) <(sort countries.txt | uniq)
"You don't sew with a fork, so I see no reason to eat with knitting needles" ~ Miss Piggy, on eating Chinese Food
Related linux commands:
cmp - Compare two files.
diff - Display the differences between two files.
diff3 - Show differences among three files.
sdiff - merge two files interactively.
head - Output the first part of file(s).
sort - Sort text files .
Equivalent Windows commands: COMP / FC - Compare and display Characters/Lines which do not match. (also the WINDIFF GUI)