mygemsSay hi

Compare two CSV files

Added, removed, changed — matched on a key, not line by line.

  • Added, removed, changed
  • Matched on a key column
  • Field-level change list
  • Nothing uploaded

1.Open both files

The old file

CSV or TSV. Drag it here, or choose a file.

The new file

CSV or TSV. Drag it here, or choose a file.

Why it exists

A text diff on two CSVs tells you that line 4,912 changed, which is almost never the question. The question is which records are new, which are gone, and which ones changed and in what field. That needs a key column to match rows across the two files, so this asks for one and then answers in those terms.

What it does

  • Takes an old file and a new file and matches their rows on a key column you pick.
  • Reports rows only in the new file, rows only in the old file, and rows present in both whose values differ.
  • For a changed row, names the columns that changed and shows the old and new values.
  • Ignores row order entirely — a file that was merely re-sorted shows no changes.

Choosing a key

The key is whatever makes a row identifiable across both files: an ID, an email address, a SKU, or two columns together. If the key repeats within a file, comparison is ambiguous and the tool says so rather than picking one.

Questions

Why does it need a key column?
Without one, the only thing two files can be compared on is position, and a single inserted row at the top then reports every subsequent row as changed. A key makes the comparison about records rather than line numbers.
Does the column order have to match between files?
No. Columns are matched by name, and a column that exists in only one file is reported as such rather than treated as a change on every row.
What if the key is not unique?
The tool tells you which key values repeat and stops. With duplicate keys there is no single correct pairing of old rows to new ones, and guessing would produce a confident, wrong diff.