Remove duplicate lines

Paste a list, get it back with duplicates gone. The "Remove duplicate lines" step is already queued up below — adjust its settings, or add more steps to the pipeline.

Your text never leaves your browser.

Pipeline

Add one or more steps below. They run top to bottom, live, and you can reorder or remove any of them.

    No steps yet — add one above, or try an example that already has a few queued up.

    Result

    First occurrence or last?

    "Keep first occurrence" removes every repeat after a line's first appearance, which is what you want when the earliest copy has the context (a changelog, a running log). "Keep last occurrence" does the opposite — it removes earlier copies and keeps the final one in its original position, which suits a list where later entries supersede earlier ones (a corrections list, a "latest status" export). Both leave the surviving lines in their original order rather than moving them to the top or bottom.

    Case-insensitive matching

    Off by default, so "Apple" and "apple" count as different lines. Turn it on when the source list was typed by hand and case is inconsistent rather than meaningful — a list of email addresses or usernames, for instance, where "Jane@Example.com" and "jane@example.com" are the same address.

    Why this is one step in a pipeline, not a standalone tool

    Deduplication is rarely the only thing a messy list needs. Add "Trim each line" first if the duplicates differ only by stray leading or trailing spaces — those look identical but won't match until trimmed. Add "Sort lines" after, if you want the deduplicated result alphabetized. The full text cleaner has every operation available at once.

    Text Cleaner

    The full pipeline: dedupe, sort, strip, and extract, stacked into one ordered set of steps.

    Sort Text Alphabetically

    A-Z, Z-A, by length, numeric, or natural sort (file2 before file10).

    Case Converter

    Convert between UPPERCASE, Sentence case, Title Case, and programming cases.

    Remove Line Breaks

    Join wrapped lines back into paragraphs, with paragraph breaks kept intact by default.