Archives

All posts for the day July 8th, 2013

Sure you can use the diff command and try to make sense out of that output. I personally always had issues with this..maybe it was just me? Something I just found that is way easier, using the comm command.

comm -1 file1 file2

This will show only the lines unique to file1

comm -2 file1 file2

This will show only the lines that are unique to File2

comm -3 file1 file2

This will compare the two files and will only display the lines that are present from either file1 or file2 in column 3.

man comm

Name
comm – compare two sorted files line by line
Synopsis
comm [OPTION]… FILE1 FILE2
Description

Compare sorted files FILE1 and FILE2 line by line.

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
–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.