Remove duplicate CSV rows by the right key
Two CSV rows are not always duplicates just because every field matches. Customer exports may need comparison by email, inventory files by SKU, and event files by a combination of user ID and timestamp. This tool lets you choose the columns that define a duplicate while preserving the first matching row and the original file order.
Normalization options
- Trim and collapse whitespace treats surrounding spaces and repeated internal whitespace as insignificant.
- Ignore letter case matches values such as
Ada@example.com and ada@example.com.
- Keep rows with empty keys prevents unrelated blank identifiers from collapsing into one row.
Normalization is used only for comparison. The values written to the output remain exactly as they appeared in the first retained row.
Example
If email is the selected key, these rows match when case and whitespace are ignored:
email,name
ada@example.com,Ada Lovelace
ADA@example.com, Ada Lovelace
The output keeps the first row. Select both email and name if both fields must match before a row is removed.
Privacy and limits
Parsing and deduplication happen entirely in browser memory. Your CSV is not uploaded to MiniUtil. Files are capped at 20 MB to avoid locking the tab; much larger datasets are better handled with streaming database or command-line tools.
The parser preserves quoted delimiters, embedded line breaks, and escaped quotes. It does not infer numeric types because values such as ZIP codes and account numbers may require leading zeroes.
Related CSV tools
Use the CSV Delimiter and Encoding Fixer before deduplication when a file opens in the wrong columns, the CSV Viewer to inspect the cleaned table, or CSV to JSON and the JSONL Converter for structured-data exports.