All Over Tools logo
Tool Combiner
Analyze Tools Clean Tools Compare Tools Convert Tools Data Validation Extract Tools Format Tools Generate Tools Organize Tools Transform Tools
Image Tools Video Tools Audio Tools Subtitle Tools Font Tools
Analyze Tools Clean Tools Compress Tools Convert Tools Edit Tools Extract Tools Generate Tools Merge Tools Organize Tools Redact Tools Repair Tools Split Tools
Analyze Tools Clean Tools Compare Tools Convert Tools Extract Tools Generate Tools Merge Tools Transform Tools Validate Tools
Business Calculators Construction Calculators Date And Time Calculators Education Calculators Financial Calculators Food Calculators Health Calculators Math Calculators Science Calculators Sports Calculators Statistics Calculators
Blog About Us Contact Us

CSV Diff

Compare two CSV, TSV, or delimited tables. Match rows by key columns or row position, and see exactly which rows and cells were added, removed, or changed.

List A

List B

Enter Original (A) and Modified (B)

Paste delimited text into both text areas, or use each text box’s upload button to load a CSV, TSV, or TXT file. Add content to Original (A) and Modified (B) to compare them automatically.

Choose the Comparison Settings

Choose Auto-detect, Comma ( , ), Semicolon ( ; ), Tab, Pipe ( | ), or Custom… from Delimiter. Auto-detection examines the first 25 lines of each input, ignoring empty lines within that range. Each input is parsed with its own detected delimiter, so CSV and TSV-style inputs can be compared together.

Custom delimiter accepts one character. If the field is blank, the tool uses a comma.

Enable First row is a header when the first row contains column names. The Key column(s) field accepts comma-separated header names or 1-based numeric entries, such as id or 1. Header-name matching is case-insensitive. Leave it blank to compare rows by position.

The key specification resolves separately against each table. Verify that every key name or number identifies a column in both inputs. If any requested key is missing from either table, the tool reports that the key specification could not be applied and falls back to row position; it never silently compares one table by keys and the other by position.

Use the comparison policies to define equal values:

  • Ignore case treats letter-case differences as equal.
  • Ignore leading/trailing & extra whitespace trims values and collapses repeated internal whitespace.
  • Numeric-aware comparison (e.g. "5" = "5.0") compares numeric values when both cells parse as numbers.
  • Ignore column order (match by header name) matches columns by name instead of position, but only takes effect when both inputs have headers. Without headers, positional columns are used.

Columns present in only one input appear under Column differences and are excluded from changed-cell comparisons.

Compare and Interpret the Results

  1. Enter content in both Original (A) and Modified (B).
  2. Choose the delimiter, header setting, key columns, and comparison policies.
  3. Review the comparison as it updates automatically.
  4. Review the counts and the Added rows, Removed rows, and Changed rows sections.

The results show added, removed, changed, changed-cell, and unchanged counts. Changed rows include row numbers, keys, changed-cell counts, and before-and-after values. The Added and Removed tables display the first 500 records; the Changed table displays the first 500 changed row groups. Counts still use the complete computed result.

Export the Computed Differences

Select Export CSV or Export JSON after a comparison. Both downloads include all computed added, removed, and changed entries, but they are not complete source-row exports. CSV includes status, row numbers, keys, changed columns, and before-and-after values. JSON includes statistics, keys, row numbers, and changed-cell details; added and removed entries do not include full source-row contents.

Check Key Matching and Irregular Input

When duplicate keys occur, occurrences are matched in order of appearance and a warning is shown. If keys, delimiters, or row shapes are uncertain, inspect the parsed counts, column differences, and matching mode before relying on the result.

Malformed, ragged, or irregular input may still produce a result without a dedicated validation message. Check that the rows and columns were parsed as intended. With Auto-detect, each input is parsed using its own detected delimiter.

Browser-Based Processing

When you select a file, the browser-side script reads it with FileReader. Parsing and comparison occur in the browser, and the page creates the downloads locally.

Frequently Asked Questions

How is this different from JSON Diff or Spreadsheet Diff?

This tool compares delimited tabular records and cells - CSV, TSV, or custom-delimited text. JSON Diff compares nested JSON document structure and paths. Spreadsheet Diff compares workbook sheets, including formatting. Use this tool when your data is a flat table of rows and columns.

What does matching rows by key columns mean?

Instead of comparing row 1 to row 1 and row 2 to row 2, you pick one or more columns (like an ID or email) whose combined value uniquely identifies a record. Rows are then matched between the two tables by that value, so an inserted or deleted row in the middle doesn't shift every row after it out of alignment.

What happens with duplicate keys?

If the same key value appears more than once in a table, occurrences are matched in the order they appear (first duplicate in Original with first duplicate in Modified, and so on). A warning is shown when duplicates are detected.

Can it ignore differences in column order?

Yes, when both tables have a header row. Enable Ignore column order and columns are matched by header name instead of position, so reordering columns in one file doesn't register as every cell changing.

Related Tools

26 views