Duplicate remover

List
7 in → 5 out
Source list7 items
Unique items
ada@example.com
grace@example.com
ADA@example.com
alan@example.com
katherine@example.com
What repeated2 items
alan@example.com×2
grace@example.com×2
Items in7
Unique5
Repeated2
Removed2

Remove Duplicate Lines

Deduplicate a list and see what was actually repeated. Keep the unique set, isolate only the entries that appeared more than once, or extract the ones that appeared exactly once — with counts, four sort orders, and a separator that can be a newline, a comma, or anything the export used.

Modes: unique, duplicates, singles
3
Sort orders
4
Pass over the list
1
Lines uploaded
0

Step by step

How to use it

  1. 01Paste the list

    One entry per line by default. Set the separator to a comma, a semicolon, or a tab when the list arrived from a spreadsheet cell or a CSV column instead.

  2. 02Choose what you want back

    Unique keeps the first occurrence of everything. Duplicates keeps only entries that appeared more than once — the audit view. Singles keeps only those that appeared exactly once, which is the opposite question and often the more interesting one.

  3. 03Decide what counts as the same

    Trimming and dropping empty entries are on by default because exports are messy. Case-insensitive matching is off, because whether Ada and ada are the same depends entirely on what the list is.

  4. 04Sort, count, and copy

    Keep the original order, sort alphabetically either way, or sort by frequency to put the worst offenders first. Counts can be shown inline so the output doubles as a report.

Worked example

Three questions, one list

The same twelve-line list read three ways. Most tools only answer the first question; the other two are usually what you actually needed.

Given

Input
12 lines
Distinct values
8
Repeated values
3

The three modes on identical input

unique      8 lines   -> the clean list, first occurrence kept
duplicates  3 lines   -> only what appeared more than once
                         with counts: 3x, 2x, 2x
singles     5 lines   -> only what appeared exactly once

8 unique = 3 repeated + 5 singles
Removed by unique
4 lines
Entries repeating
3 of 8
Appeared once
5

Unique tells you the list is smaller than you thought; duplicates tells you which entries caused it, which is what you need when you are chasing a double-import or a merge that ran twice. Singles is the reconciliation question — the rows that appear in one export but not the other — and it is the mode people do not know to look for.

Before you deduplicate

What to know about deduplicating lists

Invisible differences are the usual culprit

Trailing spaces, non-breaking spaces pasted from a web page, and Windows line endings all make two identical-looking entries different. Trimming is on by default for exactly this reason, and it is why a list that visibly repeats sometimes reports no duplicates until you turn it on.

Case sensitivity is a decision about the data

Email addresses are case-insensitive in practice, usernames often are not, and product codes vary by system. There is no safe default, which is why the switch is off — collapsing Ada into ada silently is worse than leaving two rows for you to look at.

Which occurrence survives can matter

Unique keeps the first appearance, so if the list is ordered — newest first, or by priority — the survivor is the one you saw first. When the last occurrence is the authoritative one, reverse the list before deduplicating rather than after.

Frequency sorting turns a list into a report

Sorting by count puts the most repeated entries at the top, which answers a different question: not what is duplicated, but what dominates. Combined with counts inline, the output is a tally you can paste into a ticket rather than a list you have to summarise.

The separator decides what an entry is

A newline is the default, but exports arrive as comma-separated cells, semicolon lists, and tab-delimited columns. Choosing the wrong separator produces one enormous entry that is trivially unique — if nothing seems to deduplicate, that is the first thing to check.

Nothing is uploaded

Splitting, counting, and sorting all run in your browser. The lists people deduplicate are usually email addresses, customer IDs, and internal exports, none of which should be leaving the machine to have their duplicates counted.

The judgement call

Which mode answers your question?

Deduplicating and investigating duplicates are different jobs, and the second one is usually the real one.

  • Cleaning a mailing list before import

    Unique

    Keeps one of everything in the original order. Turn on case-insensitive for email addresses.

  • Finding out why a total is too high

    Duplicates

    Shows only the repeated entries with their counts, which is the evidence of a double import or a re-run job.

  • Reconciling two exports

    Singles

    Paste both lists together: what appears once is what exists in one export and not the other.

  • Reporting the worst offenders

    Sort by frequency

    Highest count first, with counts shown inline, so the output is already a summary.

  • A list where the newest entry must win

    Reverse first

    Unique keeps the first occurrence. Reverse the input so the entry you want to keep is the one it meets first.

  • Rows differing in one column only

    Wrong tool

    This compares whole entries. Isolate the column you care about first, or use a spreadsheet.

Reference

How the comparison works

Modes
unique · duplicates · singlesDistinct entries, entries appearing more than once, and entries appearing exactly once.
Sort orders
original · A–Z · Z–A · frequencyOriginal preserves first-appearance order, which keeps a curated list curated.
Default cleaning
Trim on · empties droppedWhitespace differences are the most common reason two identical-looking entries do not match.
Case
Sensitive by defaultOff because whether Ada and ada are one entry depends entirely on what the list contains.
Separator
Newline, or any stringSet it to a comma, semicolon, or tab for lists that arrived out of a spreadsheet cell.
Counts
Available inlineTurns the output into a tally rather than a list — useful when the result is going into a ticket.

FAQ

Questions, answered plainly

How do I remove duplicate lines from a list?

Paste it in with one entry per line. Unique mode is selected by default and keeps the first occurrence of every entry in its original position. Change the separator if your list is comma- or tab-separated rather than line-separated.

Why does my list say there are no duplicates?

Usually an invisible difference — a trailing space, a non-breaking space pasted from a web page, or a stray character. Trimming is on by default to catch most of these. The other common cause is the wrong separator, which turns the whole list into a single entry that is trivially unique.

How do I see only the duplicated entries?

Switch to duplicates mode, which keeps only entries that appeared more than once and can show how many times each did. Sort by frequency to put the worst offenders first — that combination is what you want when you are working out why a total came out too high.

What is singles mode for?

It keeps only entries that appeared exactly once, which is the reconciliation question. Paste two exports together and the singles are the records present in one but not the other — the difference between the lists, without a spreadsheet formula.

Should I match case-insensitively?

For email addresses, yes — they are treated case-insensitively in practice. For usernames, product codes, and identifiers, be careful: some systems genuinely distinguish them. The switch is off by default because collapsing entries silently is worse than showing you two rows to judge.

Is my list uploaded?

No. Splitting, counting, and sorting all run in your browser, which matters because these lists are usually email addresses, customer IDs, or internal exports. Shorter lists can travel in a share link if you choose; longer ones stay put and only the settings are shared.

Splitting, counting, and sorting all run in your browser. No list is uploaded, logged, or retained.