Free tool
CSV diff
Paste two CSV files and see which rows and cells changed, side by side. Comma, tab or semicolon delimited. Runs in your browser; nothing is uploaded.
Runs in your browser. Nothing you paste leaves this page.
What this compares
Each file is parsed into records, quoted fields and all, and the records are compared in order. When a record changed, the cells that differ are marked and the rest stay plain, so a price change in a 40-column row reads as one marked cell rather than a whole red line. Inserted and deleted records show on one side only, with the row numbers of their own file.
Rows are matched by position, not by a key column. If one file was re-sorted, sort the other the same way before comparing, or every row will show as changed.
CSV diffs in git
A line diff of a CSV file tells you a record changed and nothing more: the line is red, then green, and you count commas to find the cell. Meridian's rendered preview draws a CSV change as two tables, the old file beside the new, for every file in the repository. The same mode covers JSON, Markdown, SVG and images.
Comparing JSON instead? The JSON diff tool ignores formatting and key order. For the command itself, see git diff, explained.
Tables, not commas
Meridian is a native Git client for the Mac that renders CSV, JSON, Markdown and image diffs as documents, old beside new, then lets you stage and commit.
Free 14-day trial | One licence, three Macs
Related: JSON diff | Markdown diff | git diff, explained
CSV diffs, answered
Does my CSV get uploaded anywhere?
No. The comparison runs in your browser. This page makes no network requests with your data.
Which delimiters are supported?
Comma, tab and semicolon. The delimiter is guessed from the first line of the old file. Quoted fields, commas inside quotes and doubled quotes follow the usual CSV rules.
How are changed rows matched?
Rows are compared in order. A removed row followed by an added row is treated as one changed row, and the cells that differ are marked. A row that was inserted or deleted outright shows on one side only. Rows are not matched by key, so a re-sorted file shows every row as changed; sort both files the same way first.
How do I diff a CSV file in git?
git diff shows changed lines, which for CSV means whole records with no hint of which cell moved. Meridian renders a CSV change as two tables, old beside new. git diff, explained covers the command.