Remove duplicate lines from any text
Paste a list, strip out the repeats, and copy the clean version back. Ignore case, trim stray spaces, drop blank lines, sort the output, or keep only the lines that appear exactly once — all in your browser, with nothing sent to a server.
Cleaning a list in three steps
Paste your lines
Drop in an email list, a keyword export, a set of URLs — anything with one item per line. Order is preserved by default.
Set the matching rules
Decide whether case and surrounding spaces should count, and whether to keep the first copy, the last, or only lines that never repeat.
Copy the clean result
Hit remove duplicates, check the tally of what was cut, and copy the tidy output straight to your clipboard.
Handy for all kinds of lists
Mailing and contact lists
Merging two exports usually means duplicate addresses. Strip them out before an import so no one gets the same message twice.
Keywords and tags
Research files fill up with the same phrase in different rows. Deduplicate to get an honest count of the unique terms you are targeting.
Logs and data prep
Collapse repeated entries, isolate the values that occur only once, or sort a cleaned set before pasting it into a spreadsheet or script.
How the options change the result
The defaults suit most lists, but each switch gives you finer control over what counts as a duplicate and what comes out the other end.
Ignore case
Off by default, so "Apple" and "apple" are treated as different lines. Turn it on and they collapse into one — useful for names, tags and email addresses, where capitalisation should not create a false distinction.
Trim each line
Leading and trailing spaces are invisible but real, and they stop two otherwise-identical lines from matching. Trimming is on by default so " hello" and "hello" are recognised as the same and the output comes back cleanly aligned.
Keep first, last, or unique only
"First occurrence" keeps the earliest copy of each line and drops the rest, preserving your original order. "Last occurrence" keeps the final copy instead. "Only lines that appear once" is different in spirit — it removes every line that has any duplicate at all, leaving just the entries that were never repeated.
Sort A→Z
Leave it off to keep the original order minus the repeats. Switch it on to alphabetise the cleaned list, which makes a long set far easier to scan and compare.
Frequently asked questions
What counts as a duplicate line?
Two lines match when their text is identical. With "trim" on, surrounding spaces are ignored; with "ignore case" on, capitalisation is ignored too. You control both.
Does it keep my original order?
Yes, unless you turn on sorting. By default the first copy of each line stays exactly where it was and later repeats are removed.
What does "only lines that appear once" do?
It removes every line that has a duplicate anywhere in the list, leaving just the entries that were unique to begin with. It is the opposite of a normal dedupe, which keeps one of each.
Can it handle a very large list?
Yes. Tens of thousands of lines process in a fraction of a second because everything runs locally. The only limit is your device's memory.
Is my data uploaded?
No. The whole tool runs in your browser. Your list is never sent anywhere, which matters when it contains emails or other personal data.
Are blank lines removed?
By default yes, since empty rows are usually noise. Uncheck "drop empty lines" if you want to keep the spacing in your text.