Removing duplicates from a long list sounds trivial until you have to choose what counts as "duplicate". This tool gives you the three switches that actually matter: trim whitespace, ignore case, and ignore blank lines. The first occurrence of each line is always kept so the original order is preserved unless you explicitly opt into sorting.
Internally the deduper builds a Set keyed by the comparison form of each line (lower-cased and/or trimmed) but writes out the line in its original form. That keeps email addresses, file paths and IDs readable in the output even when you're comparing them case-insensitively.
Yes by default — the first occurrence of each line wins and later duplicates are dropped, leaving the rest of the list in its original order. Tick "Sort after dedup" if you want an A→Z order instead.
With "Trim whitespace" enabled (default), " hello" and "hello " count as the same line. Disable trimming if your data is whitespace-significant — for example, indented config or YAML.
Yes. Comparison uses JavaScript's String.toLowerCase, which handles most Latin, Greek, Cyrillic and Cherokee letters. Edge cases like Turkish dotted/dotless I follow JavaScript's default Unicode rules, not locale-aware rules.
The whole input is held in memory as a Set of strings, so a few hundred thousand lines is comfortable on a modern laptop. Past a million lines you may notice the browser tab slow down — at that point a streaming command-line tool is faster.
Explore the full suite of Text tools and 290+ other free utilities at Chunky Munster.