How to compare two csv files in windows How to compare two csv files in windows windows windows

How to compare two csv files in windows


Suggestion:

  • Press Windows+R shortcut to open windows' Run prompt
  • Type in cmd and press Enter to open a DOS terminal cmd window
  • Change the current path by running the command cd C:\path\to\your\directory to reach the location of the two CSV files

Tip: To paste a copied path from clipboard into DOS terminal cmd window, you can either (1) right-click on terminal window, or (2) press Shift+Insert.

  • Finally, to compare the two files, run fc filename1.csv filename2.csv > outfile.txt (fc stands for "file compare").
    The command will also log the result of comparison into a text file outfile.txt located in the same folder. If outfile.txt doesn't exist, it will be created automatically.


Here is another option which I found very useful, as mentioned here:

findstr /v /g:"file1.csv" "file2.csv"

Where the /v switch returns the differences and /g: gets the search strings from file1.csv. You can use findstr /? for more help.

You can also print the differences to a file using:

findstr /v /g:"file1.csv" "file2.csv > diffs.csv"

As an aside, I found findstr far more accurate and the output more readable than fc.


UPDATE
This works nicely with 'smaller' files. You might get an out of memory error on larger files. In this case, I've had to turn to Python and dataframes. Just a friendly heads up ...


I did this today.

Lets say we have 2 csv files X and Y

X having columns a, b, c
Y having column a, b, c

The rows are not in same order and are disperesed througout the csv files.

I imported both of them in my excel sheet.I sorted them first by column c and then by column b and then by column a.You can go in any order you like.

Compare the sorted files through notepad++'s compare plugin/Beyond Compare.