Remove Duplicate Lines

Strip duplicate lines from any list, with optional sorting and case handling.

Cleaning up lists

Duplicate entries creep into lists constantly — merged spreadsheets, exported contact lists, concatenated log files, keyword research pulled from several sources. Finding them by eye in a list of any length is impractical, and most spreadsheet deduplication requires several steps.

This tool takes a list one item per line, removes repeated entries, and reports how many it dropped. The first occurrence of each item is kept, so original ordering is preserved unless you ask for sorting.

The options and when they matter

Ignore case treats entries differing only in capitalisation as the same. This is usually what you want for email addresses, which are effectively case-insensitive in practice, and for tag or keyword lists. Leave it off when case is meaningful, such as with code identifiers or case-sensitive usernames.

Trim whitespace removes leading and trailing spaces before comparing. This matters more than it sounds: entries copied from different sources routinely carry invisible trailing spaces, and without trimming they are treated as distinct despite looking identical. This catches the most common source of "duplicates that were not removed".

Remove blank lines strips empty rows, which otherwise collapse into a single blank entry.

Showing only duplicates

The second button inverts the operation, listing only the entries that appeared more than once along with how many times each occurred. This is the mode to use when the duplicates themselves are the interesting finding — identifying repeated transactions, spotting double-booked records, or working out which items overlap between two merged lists.

Sorting

Sorting is applied after deduplication. Alphabetical ordering makes remaining duplicates or near-duplicates easy to spot visually, since similar entries end up adjacent. Note that sorting is alphabetical rather than numeric, so a list of numbers will order as text — 10 sorts before 9.

Common uses

Merging mailing lists from several exports without sending duplicates. Cleaning keyword lists gathered from multiple research tools. Deduplicating IP addresses or error messages pulled from logs. Tidying inventory or SKU lists assembled by different people. Preparing a clean set of URLs for a sitemap.

Nothing is uploaded

All processing happens in your browser. Contact lists and internal data frequently contain personal information, so it matters that nothing you paste is transmitted or stored.

Frequently Asked Questions

Does it keep the first or last occurrence?

The first. Subsequent repeats are removed, which preserves your original ordering.

Why were two identical-looking lines not merged?

Almost always trailing whitespace or a case difference. Enable trim whitespace and ignore case to catch both.

Can I see which entries were duplicated?

Yes. The Show Only Duplicates button lists every repeated entry with its occurrence count.

Is there a size limit?

No imposed limit. Lists of tens of thousands of lines process near-instantly.

Is my list uploaded?

No. Everything runs in your browser, which matters for contact lists and other personal data.