I need to compare two csv files in windows7. How can I proceed to achieve this. I want to see the differences in both the files , like we can use tkdiff in Linux.
Suggestion:
cmd
and press Enter to open a 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.
fc filename1.csv filename2.csv > outfile.txt
(fc
stands for "file compare").outfile.txt
located in the same folder. If outfile.txt
doesn't exist, it will be created automatically.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.
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 ...