How To Find Similar Lines Between Two Text Files In Linux

Print Friendly, PDF & Email

Those working in Unix environment must be aware of the requirement to find common lines between two Unix files. In this article, I want to introduce you a solution of this problem.

For our example, I have taken two files first and second. The contents of the files are as below:

wiw_labs:$ cat first
computer
modem
monitor
phone
switch

wiw_labs:$ cat second
cable
mobile
modem
phone
server

In Unix one command to deal with such issues is the “comm” command. This command finds out what is common between two files, what is unique to first file and what is unique to second file.
Here is the general syntax for this command:

wiw_labs:$ comm first_file second_file

The output is three column output. First column shows the lines unique to the first file only. The second column shows the lines unique to second file only. The third column shows the lines common to both files.

wiw_labs:$ comm first second
    cable
computer
    mobile
    modem
monitor
    phone
    server
switch

If you have a look on the output, you’ll see:
computer, monitor and switch are only in first file.
cable, mobile and server are only in second file.
modem and phone are in both files.

The first, second and third column are specified by number 1,2 and 3.
Simple formula is, whichever column you don’t want to see, pre-pend it with -.

So, if you want to see only the lines unique to first file, use -23(Means don’t show me lines unique to second file and common lines.).
If you want to see only the lines unique to second file, use -13(Means don’t show me lines unique to first file lines and common lines.).
If you want to see only the lines common to both files, use -12(Means don’t show me first file lines and common lines.).

How To See The Line Only in First File
For watching lines unique to first file only use -23.

wiw_labs:$ comm -23 first second
computer
monitor
switch

How To See The Line Only in Second File
For watching lines unique to first file only use -13.

wiw_labs:$ comm -13 first second
cable
mobile
server

How To See The Line Common To Both Files

wiw_labs:$ comm -12 first second
modem
phone

One thought on “How To Find Similar Lines Between Two Text Files In Linux

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.