Clean Text · browser-local
Sort Lines
Sort a list of lines into alphabetical order. GlyphSift uses a locale-aware comparison with numeric ordering so that item 2 sorts before item 10.
- Index state
- eligible
- Reviewed
- 2026-08-24
- Input limit
- 5,000 graphemes
Sort Lines
apple apple banana cherry
Good fit
Use this tool when
- You want a list in predictable alphabetical order.
- You are tidying keywords, names, or tags.
- You need numeric-aware ordering for mixed labels.
Keep the original
Avoid it when
- The original order carries meaning, such as steps.
- You need to remove duplicates at the same time.
- You require case-sensitive or custom sort keys.
Reviewed truth vectors
Examples that expose the edge cases
banana
apple
cherry
appleapple
apple
banana
cherryLines are ordered; duplicates are kept.
item 10
item 2
item 1item 1
item 2
item 10Numeric-aware order keeps 2 before 10.
Beta
alphaalpha
BetaBase-letter comparison ignores case differences.
Transparent implementation
How it works
- 01
Normalize line endings to LF.
- 02
Split into lines and compare with a locale-aware, numeric collator.
- 03
Join the sorted lines with single newlines.
Known limitations
What the result cannot promise
It does not remove duplicates or empty lines.
Comparison is base-letter and case-insensitive, not a strict code-point sort.
It does not sort by length or a custom key.
Questions before copying
Frequently asked questions
Are duplicates removed?
No. Sorting preserves every line. Run Remove Duplicate Lines separately for a unique set.
How are numbers handled?
A numeric-aware comparison is used, so item 2 sorts before item 10.
Is it case-sensitive?
No. It compares base letters, so case differences do not change the order.
Experience, expertise & trust
How we verify this tool
Automated evidence
- Tool-contract & coverage suite30 deterministic cases
tests/tools-30.test.mjs mirrors the ToolRunner dispatch and asserts every registered engineId returns the contracted output shape, plus a coverage guard so no tool silently drops characters.
Run in: node --test after a production build (vinext build) - Rendered-HTML suite12 deterministic cases
tests/rendered-html.test.mjs renders the deployed server bundle and asserts the Unicode-version manifest and each wave's tool markup are present in the server-rendered HTML.
Run in: node --test against the built dist/server bundle - Transform & cleanup suite21 deterministic cases
tests/transform-cleanup.test.mjs exercises each deterministic cleanup and transform action against whitespace, duplicate, ordering, casing, and HTML-to-text edge cases.
Run in: node --test, no network, no randomness
Standards this tool follows
- UAX #29: Unicode Text Segmentation
Grapheme and word boundaries underpinning line and whitespace operations.
- UAX #14: Unicode Line Breaking Algorithm
Line-break semantics behind hard-wrap repair.