Skip to content
Allin

Add line numbers

Prefix every line of your text with a sequential line number.

Add line numbers is free to use as often as you like, directly from this page. Its place is under Transform & clean; Remove line numbers and Add prefix / suffix to lines answer the questions closest to this one.

How to use it

  1. Open the tool — no signup or install needed.
  2. Enter your input or adjust the available options.
  3. Get your result instantly, then copy or download it.

Frequently asked questions

What does Add line numbers do?

Prefix every line of your text with a sequential line number.

When would I actually use this?

Cleaning up a paste before it goes anywhere: stripping duplicates from a list, normalising case, removing accents for a filename, or sorting lines.

What is the most common mistake?

Sorting text as if it were ASCII. Accented letters land after Z in a byte sort, which puts "Zurich" before "Émile" and produces a list no reader will accept.

How is Add line numbers different from Remove line numbers?

They sit next to each other but answer different questions: Remove line numbers is the one to open when you need it to strip leading line numbers (1. 2) 3:) from every line. Pick whichever matches what you're starting from — both are free.

Is there a tool for the next step?

Add prefix / suffix to lines is the closest one after this: Add text at the start and/or end of every line.

What else is worth having open alongside it?

Increment numbers and Sort numbers — they come up in the same task often enough to be worth a second tab.

Where do the figures come from?

Transformations use the browser's Unicode-aware string handling, so case changes and sorting respect the locale rather than byte order. Nothing is truncated: what comes out is the whole of what went in.

Further reading

All guides
How-toNumbering the Lines of a Text for a Review with Several PeopleNumbering starts at 1 and cannot be set to 0, the alignment is spaces rather than zeros, and the remover undoes eight of the eleven separators without touching the indentation. What it still cannot do is tell your numbers from its own.GuideFormatting Numbers for Six Languages: Separators, Currency and the Parse Back1,234.56 and 1.234,56 are the same number, and confusing them changes the value a reader parses. We ran Intl.NumberFormat for all six site locales and printed every separator — including the invisible one French uses — then measured why parseFloat cannot undo any of it.ExplainerDetecting the Language of a Text, and Why Short Texts FailMeasured, not asserted: 90 short real phrases across six languages, none declined and 68 right — 76%, falling to 64% under sixteen letters. Four of the wrong answers came back at 100% confidence.How-toCleaning Messy Text: The Order of Operations That Actually MattersStrip tags before decoding entities, trim before deduplicating, collapse whitespace last. Three orderings run in Node, a nine-step pipeline in the right sequence, and the invisible characters — U+00A0, U+200B, U+FEFF — that survive every naive cleanup.GuideStripping Markdown: What Plain Text Loses, and What a Regex Gets WrongA link becomes text with its destination deleted, a nested list loses its hierarchy, a table becomes a row of words. Then the technical half: markdown has no single spec, and a regex stripper mangles a filename, a multiplication sign and the inside of a code block — all shown against a real parser.ExplainerSorting Text Is Not One Operation: Four Orderings That All Call Themselves AlphabeticalCode-unit order, natural order and locale collation run on the same list in Node, with the outputs printed. Why Zebra beats apple, why item10 beats item9, and why ä sits next to a in German but after z in Swedish.