I have two files (let's say a.txt
and b.txt
), both of which has a list of names. I have already run sort
on both the files.
Now I want to find lines from a.txt
which are not present in b.txt
.
(I spent lot of time to find the answer for this question, so documenting it for future reference)
The command you have to use is not diff
but comm
comm -23 a.txt b.txt
By default, comm
outputs 3 columns: left-only, right-only, both. The -1
, -2
and -3
switches suppress these columns.
So, -23
hides the right-only and both columns, showing the lines that appear only in the first (left) file.
If you want to find lines that appear in both, you can use -12
, which hides the left-only and right-only columns, leaving you with just the both column.