comm
Compare sorted files FILE1 and FILE2 line by line.
comm [OPTION]... FILE1 FILE2When 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.
-1 suppress column 1 (lines unique to FILE1)
-2 suppress column 2 (lines unique to FILE2)
-3 suppress column 3 (lines that appear in both files)
--check-order check that the input is correctly sorted, even
if all input lines are pairable
--nocheck-order do not check that the input is correctly sorted
--output-delimiter=STR separate columns with STR
--total output a summary
-z, --zero-terminated line delimiter is NUL, not newline
--help display this help and exit
--version output version information and exit
Note, comparisons honor the rules specified by 'LC_COLLATE'.
Examples:
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.
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation at: <https://www.gnu.org/software/coreutils/comm>
or available locally via: info '(coreutils) comm invocation'
Examples
Section titled “Examples”It outputs three space-offset columns:
- The first contains lines that are unique to the first file or argument
- The second contains lines that are unique to the second file or argument
- The third column contains lines that are shared by both files
Compare normally
Section titled “Compare normally”Content file 1 and 2
$ cat file1
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
$ cat file2
192.168.1.1
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6$ comm file1 file2
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6When only the matching lines are at interest, use the -n switch, where n is the field number(s).
$ comm -12 file1 file2
192.168.1.1
192.168.1.3
192.168.1.4
192.168.1.5Compare where content of lines do not directly match but are matched at other lines in file
Section titled “Compare where content of lines do not directly match but are matched at other lines in file”$ cat file1
abcd
efgh
$ cat file2
abcd
aaaa
efgh$ comm file1 file2
abcd
aaaa
efgh