Is there a way to do a "clean" export of the differences between files? Not a diff, or even a formatted report... just a clean .CSV/.XLS/etc export.
This is for people that are non-technical; we have a number of nontechnical people in our company that could really use something like this. They work with mailing lists and need a way to extract the changes between list revisions.
As a programmer I know there are a large number of diff tools out there: WinDiff, BeyondCompare, FileMerge, command-line diff, etc. But I haven't been able to find one that will just give a clean export of the differences. (It's possible I've just missed something in one of the well-known diff tools I listed)
Example...
FileA.csv
1000, Aaron
1001, Bob
1002, Chris
1004, Erin
FileB.csv
1000, Aaron
1001, Bob
1002, Chris
1003, Dolores
1004, Edward
We'd like to export just the changed rows to... "ChangesInFileB.csv"
1003, Dolores
1004, Edward
FWIW, the support guys at Beyond Compare say they don't offer that.
http://www.scootersoftware.com/vbulletin/showthread.php?p=32298#post32298
This question is superficially similar but doesn't address the "clean export" thing https://superuser.com/questions/294142/can-somebody-recommend-a-program-to-compare-differences-in-two-text-files-and-re
You could just use the standard diff
tool with some scripting.
For the two examples files, plain diff
will output:
4c4,6
< 1004, Erin
---
> 1003, Dolores
> 1004, Edward
The <
means "line removed", the >
"line added". Just filter for >
to get all lines that are in the second file, but not in the first:
$ diff a.csv b.csv |grep '>'|cut -c 3-
1003, Dolores
1004, Edward
(the cut
part filtes out the leading >
). You could put that into a script.
Note: The above assumes you have diff
, grep
& cut
installed. They're standard on Linux and Mac OS X (I believe); for Windows you'd need Cygwin or similiar.
External links referenced by this document: