Sorting data whose order carries meaning
Logs, priority queues, and review trails often depend on chronology. Leave sorting off so the first occurrence order remains intact.
Remove repeated lines from IDs, URLs, logs, and pasted lists while keeping the first original line. Choose exact case, trimmed comparison, or locale-aware natural sorting; bounded processing stays in a browser Worker.
Continue with a related workflow or open the next tool that usually follows this task.
A practical workflow for turning repeated one-item-per-line data into an auditable unique list while preserving the first useful occurrence.
OpenRelated toolCount original CRLF, LF, CR, and Unicode line separators in a local file.
OpenRelated toolRemove every blank row or collapse repeated gaps, with exact counts and line-ending diagnostics.
OpenRelated toolRemove line-start numbering while preserving inline values, indentation, and exact line endings.
OpenPreserve the source before deduplicating when first-occurrence order, surrounding whitespace, or separator bytes are part of the contract.
Load one-item-per-line text from the editor or a local TXT, CSV, TSV, log, or Markdown file, staying within the visible byte and row caps.
Enable exact case only when case changes create distinct values.
Enable trimmed comparison only when surrounding whitespace should not distinguish rows.
Leave sorting off to preserve first-occurrence order, or enable it for a reviewable natural order.
Run the tool, compare source and unique counts, read any option or line-ending warning, then copy or download the result.
Keep one copy of each identifier before a bulk admin action or spreadsheet lookup.
Collapse repeated log messages while retaining the first point at which each message appeared.
Merge URL, hostname, allowlist, or denylist fragments and inspect exactly how many rows were removed.
Remove repeated email addresses or labels after deciding whether case and surrounding whitespace are meaningful.
Produce a stable naturally sorted list for human review when the original order has no semantic value.
Logs, priority queues, and review trails often depend on chronology. Leave sorting off so the first occurrence order remains intact.
Identifiers may be case-sensitive even when human labels are not. Turn on exact case before deduplicating keys such as AbC1 and abc1.
Trimmed comparison changes only the comparison key. The tool keeps the first line exactly, including its surrounding spaces.
Composed é and decomposed e plus a combining mark remain separate because this tool does not apply Unicode normalization.
Mixed LF, CRLF, and CR input is rewritten with the predominant source ending. Review the line-ending notice before a byte-sensitive import.
With case-insensitive comparison and sorting off, the first spelling and source order are retained.
API-104
api-104
API-208
API-104API-104
API-208Enable trimmed comparison to merge surrounding-space variants without modifying the kept first line.
alpha.example.com
alpha.example.com
beta.example.com alpha.example.com
beta.example.comLine scanning preserves LF, CRLF, and CR separator evidence and treats a terminal separator as an ending marker rather than an extra value to deduplicate.
Each comparison key is stored in a Set-like map, giving average O(n) deduplication while retaining the first original line for each key.
Case-insensitive mode uses JavaScript lowercase conversion. Trimmed mode removes surrounding whitespace only from the comparison key; output content is not trimmed.
No Unicode normalization is applied. Code-point sequences that render alike can remain distinct unless their comparison keys are otherwise equal.
Natural sorting is applied only after deduplication through Intl.Collator for the active locale with numeric ordering; equal keys retain source order.
Inputs are capped at 1 MiB and 200,000 lines. Processing runs in a module Worker with a three-second deadline, and analytics records counts and options rather than source text.
Yes. Sorting off preserves the first occurrence of every comparison key and the order in which those kept lines appeared.
Comparison is case-insensitive by default. Enable exact case when Alpha and alpha must remain separate.
It trims only the temporary comparison key. The first kept line is returned byte-for-byte except when mixed line endings must be normalized.
No. NFC, NFD, NFKC, and NFKD are not applied, so canonically equivalent Unicode strings can remain distinct.
For a uniform source, retained rows use its original LF, CRLF, or CR style and keep a final ending. Mixed sources choose the most common separator, with the earliest observed type resolving a tie.
Sorting runs after deduplication with the page locale, numeric ordering, and stable source order for equal sort keys. It is not a bytewise sort.
A deduplication run is capped at 1,048,576 UTF-8 bytes and 200,000 source lines. It runs in a Worker with a three-second deadline and sends no line content in analytics.
Maintained and tested by SimpleWebUtilsReviewed
Method: To check “Preserve first-seen issue IDs”, we used Remove Duplicate Lines with the guide's exact source data and applied “Choose the case rule”. The output had to match the documented result; evidence for “Using case-insensitive matching for opaque IDs” and “Expecting trim comparison to clean the kept row” was reviewed before recording the check.
Expected result: Case-insensitive comparison reduced six issue-ID rows to four in first-seen order and reported two removals without sorting the surviving values.
Open the tested workflowUse these focused guides when you need a practical workflow before opening the tool.
A practical workflow for turning repeated one-item-per-line data into an auditable unique list while preserving the first useful occurrence.
Workflow guideA review-first workflow for producing a unique, naturally ordered list of IDs, names, URLs, tags, or labels without confusing sorting with normalization.
Workflow guideA reviewable workflow for cleaning empty and whitespace-only rows while preserving the structure, order, and line-ending details that still matter.
Workflow guideText cleanup is safest when it is treated as a sequence of explicit, reversible transformations. Preserve the source, identify line and delimiter boundaries, make one structural change at a time, promote only reviewed output to the next step, and compare the final text with the destination contract before publishing, importing, or sharing it.
Continue with another maintained workflow
Count original CRLF, LF, CR, and Unicode line separators in a local file.
Remove every blank row or collapse repeated gaps, with exact counts and line-ending diagnostics.
Remove line-start numbering while preserving inline values, indentation, and exact line endings.
Replace literal or regex matches with Unicode boundaries, capture tokens, exact counts, and Worker limits.
Count word-like segments, graphemes, code points, UTF-16 units, UTF-8 bytes, lines and reading time locally.