Compare two sorted files line by line.
comm [OPTION]... FILE1 FILE2-1 does not output the first column.
-2 does not output the second column.
-3 does not output the third column.
--check-order Check that input lines are correctly ordered, even if they are indeed sorted.
--nocheck-order Do not check input lines for correct ordering.
--output-delimiter=STR Use STR as the delimiter between output columns instead of the default TAB.
--total Adds an additional fourth column to the output summary.
-z, --zero-terminated Set the line terminator to NUL (empty) instead of newline.
--help Display help information and exit.
--version Display version information and exit.Returning 0 indicates success, returning a non-zero value indicates failure.
Text aaa.txt content
[root@localhost text]# cat aaa.txt
aaa
bbb
ccc
ddd
eee
111
222Text bbb.txt content
[root@localhost text]# cat bbb.txt
bbb
ccc
aaa
hhh
ttt
jjjComparing results
[root@localhost text]# comm --nocheck-order aaa.txt bbb.txt
aaa
bbb
ccc
aaa
ddd
eee
111
222
hhh
ttt
jjjThe first column of the output contains only lines that appear in aaa.txt, the second column contains lines that appear in bbb.txt, and the third column contains the same lines that appear in aaa.txt and bbb.txt. Each column is separated by a tab character (\t).
First sort the file contents by sort:
[root@localhost ~]# sort aaa.txt > aaa1.txt
[root@localhost ~]# sort bbb.txt > bbb1.txtComparing results:
[root@localhost ~]# comm aaa1.txt bbb1.txt
111
222
aaa
bbb
ccc
ddd
eee
hhh
jjj
tttTo print the intersection of two files, you need to delete the first and second columns:
[root@localhost text]# comm aaa.txt bbb.txt -1 -2
bbb
cccBy deleting unnecessary columns, you can get the difference between aaa.txt and bbb.txt:
Difference set of aaa.txt
[root@localhost text]# comm aaa.txt bbb.txt -2 -3
aaa
ddd
eee
111
222Difference set of bbb.txt
[root@localhost text]# comm aaa.txt bbb.txt -1 -3
aaa
hhh
ttt
jjj