Guide · 2 min read

Compare two CSV files, and see exactly what changed.

A text diff breaks down as soon as rows are re-sorted or a column moves. Comparing the tables instead — rows by a key, columns by name — shows the changes that matter.

Why a text diff is not enough

A line-by-line diff reports every line as changed when the rows are in a different order, when a column was added in the middle, or when the separator changed from comma to semicolon. The data may be identical; the diff is useless.

Comparing tables

  1. Open the newer file and press ⌃⌘D (Compare with Another File). Choose the older file — or compare with whatever table is on the clipboard.
  2. Choose how rows line up: by position, or by a key column such as customer_no, so re-sorted files still match. Columns line up by name, so moved columns do too.
  3. Read the differences: changed values are marked character by character — 300.00 → 350.00 highlights only the digit that moved. Rows only in one file are listed.
  4. Take changes across one value at a time, or a whole row at once.

Case, spacing and whole columns can be left out of the comparison, so a column of timestamps that always differs does not hide the change you are looking for.

From the command line

icsv --diff yesterday.csv today.csv

opens the first file and compares it with the second, ready to read.

Try it on your own file

Intact CSV Editor is free for seven days, fourteen with an account — every feature, no card. Download the free trial.

Questions

Common questions

Can I compare two CSV files with different column orders?

Yes. Columns are matched by name, and rows can be matched by a key column.

Can I compare an Excel file with a CSV?

Yes — the comparison is between tables, whatever format each file is in.

Open your most difficult file.

Every feature for seven days, fourteen with a free account. No card, and your files never leave your Mac.

Download free trial

macOS 14 Sonoma or later · See pricing