alpha · numeric · length · A-Z or Z-A

Sort lines alphabetically or numerically

Four sort modes — case-sensitive alpha, case-insensitive alpha, numeric, by length. Ascending or descending.

Sort Lines Workspace
Lines
6
37 B input
Mode
A→Z (case)
asc
Order
A→Z
forward
Status
Ready
stable
Sort
Order
input · lines
output · sorted
apple
Apple
banana
Banana
cherry
date
Quick Start

How to sort lines

Sort any list — names, paths, log lines, numbers. Four ordering modes plus reverse give you the right answer for most real-world sorting needs.

  1. 01

    Paste lines

    One item per line. Empty lines are kept and sorted with the rest.

    Tokenisation is Unicode-aware via \p{L}\p{N} property classes — so accented letters, ideographs, and emoji code points all count correctly.

    any listUTF-8Unicodecode pointslive
    input · textraw · UTF-8
    banana
    apple
    cherry
    loaded · UTF-8UTF-8 · ready
  2. 02

    Pick mode

    A→Z = case-sensitive (uppercase first). a→z = case-insensitive. 0→9 = numeric (NaN sorted last). Length = shortest first.

    alphanumericlength
    modea→z
    apple
    banana
    cherry
    sorted
  3. 03

    Order

    Toggle Asc/Desc to reverse.

    Output preserves the original line endings (\n vs \r\n) and trailing whitespace is reported separately so you can spot diff-only changes.

    ascdescline endingswhitespacediff-clean
    order · counteddesc · ready
    cherry
    banana
    apple
    counted · livecounted
  4. 04

    Copy or download

    One-click copy or download as plain text.

    Copy writes via the Async Clipboard API; downloads ship as text/plain; charset=utf-8 — nothing leaves your tab.

    copydownloadclipboardtext/plainblob
    export · copiedready · done
    ✓ Copied
    shipped · ready to shipsuccess
Pro tips

Text-processing fundamentals worth knowing

Tokenise with Unicode classes

Use \p{L}\p{N} with the u flag so accents, ideographs, and emoji count properly.

Normalise line endings

Convert \r\n to \n before diffing or hashing — Windows-vs-Unix endings produce phantom changes.

Mind invisible characters

Zero-width joiners, BOMs, and non-breaking spaces look identical to ASCII space. Strip them before comparison or storage.

Stream don’t slurp

For multi-megabyte text, iterate line-by-line rather than loading everything to memory — keeps the tab responsive.

Choose collation deliberately

Default JS sort is code-point order, not human alphabetical. Use Intl.Collator for locale-aware sorting.

Re-run after normalisation

NFC vs NFD changes byte length but not visible glyphs. String.prototype.normalize() before counts and comparisons.

Use Cases

When to sort lines

Anywhere alphabetized/numbered output beats the source order.

Imports / dependencies

Sort imports for stable diffs. Tokenisation uses Unicode property classes (\p{L}, \p{N}) with the u flag so accents, ideographs, and emoji code points all count correctly. Surrogate-pair-aware counts mean 🚀 weighs 1, not 2.

Unicode-correct

Acronym lists

Glossaries and reference lists. Result updates as you type — paste and watch totals settle in milliseconds even on multi-megabyte inputs. Heavy work runs through a memoised reducer so the editor never janks.

diff-clean

Numeric data

Sort log timestamps, port numbers, exit codes. Output normalises line endings to LF for clean diffs across platforms. Windows-vs-Unix CRLF mismatches disappear, which keeps git blame honest and review comments focused on real changes.

instant counts

File listings

Tidy up a copied directory listing. Code-point counts are stable across NFC/NFD normalisation. Pair with the Reading Time Calculator to layer scan-time on top of raw counts, useful for editorial budgets and SEO meta-description limits.

platform-aware

Shortest-first review

Sort by length to spot outlier lines. All processing runs client-side — paste sensitive or pre-publish copy without it leaving the tab. The clipboard API writes UTF-8 text/plain so it survives transit to any editor or CMS.

code-point-accurate

CSV columns

Sort a single column's worth of pasted data. Same input plus same options always produces identical output, so the tool is safe to embed in CI scripts or doc-generation pipelines without race conditions.

lossless
FAQ

Frequently asked questions

Yes — Array.sort in modern engines (V8, JavaScriptCore, SpiderMonkey) is stable since 2019.
parseFloat reads the leading numeric portion. Non-numeric lines sort to the end.
Yes — they're sorted with the rest of the lines (typically appearing first or last).
Yes — String.localeCompare respects Unicode collation per the browser's default locale.
No. All sorting runs locally.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!