Strip duplicate lines from a list while keeping the original order, with optional case-insensitive matching and whitespace trimming. Nothing is sorted.
Waiting for lines
The first occurrence of each line is kept and the order never changes. Blank lines are left alone.
Paste a list to deduplicate
Repeated lines are removed, the survivors keep their original order, and nothing is sorted.
Duplicate Line Remover runs entirely on your device — nothing is uploaded.
You’re on the Free plan. Compare plans
The default behaviour is what you would assume without reading anything: the first time a line appears it stays, every later copy goes, and the lines that survive keep the order they arrived in. Nothing is sorted. Comparison is exact, including capitalisation and whitespace.
Blank lines are the rule worth knowing. They are never treated as duplicates of each other, because blank lines are structure rather than content — deduplicating them would silently collapse every paragraph break in a document into one. They pass through untouched unless you explicitly ask for them to be removed.
Two options loosen the comparison. Ignoring case makes "Apple" and "apple" duplicates. Ignoring surrounding whitespace makes "Apple" and " Apple" duplicates — and when it is on, the trimming is applied to the output too, because a list that compared as trimmed but printed untrimmed would still look duplicated.
You can also keep the last occurrence instead of the first, which is what you want for a log where the newest entry wins. The result reports how many lines went and which values were the most repeated, so you can see what the tool actually did rather than diffing two documents.
No. Order is preserved exactly. If you want sorted output, run the result through the Text Sorter — keeping the two operations separate means neither surprises you.
They are kept as they are and are never counted as duplicates of each other, so paragraph breaks survive. There is a separate option to remove every blank line if that is what you want.
Not by default — comparison is case-sensitive. Turn off case sensitivity and they are treated as the same line, with the first spelling encountered being the one kept.
It ignores leading and trailing spaces and tabs when comparing, so "Apple" and " Apple" match. It also trims the output, so the surviving lines are consistent. With the option off, nothing is trimmed and nothing is compared loosely.
Which copy of a repeated line survives. Keeping first preserves the earliest occurrence, which suits a list you are deduplicating. Keeping last preserves the most recent, which suits a log or a file where later entries supersede earlier ones. The surviving lines stay in their original positions either way.
No fixed limit. Deduplication is a single pass with a hash set, so it stays fast on very long lists, and everything happens in your browser.