Free list reverser, line by line
Reverse a list last line first
TextLab turns a list upside down: the last line becomes the first and every line arrives with its own text completely unchanged. It costs nothing, wants no account, and takes a quarter of a million lines without slowing down. If the list is already numbered you decide what the numbers do — travel with their line, get rewritten so the flipped list still counts from the top, or come off altogether.
- 100% free
- No signup
- Line text left untouched
- Keeps or rewrites 1, 2, 3
- 250,000 lines in 40 ms
Nothing in this list starts with a number yet, so there is nothing to move or rewrite. To put numbers on it, use the numbered list generator.
How to reverse a list
Paste, decide what the numbers should do, take the result.
Paste the list you want turned upside down
A ranking, a reading list, a changelog, a chat export, a set of instructions — anything with one item per line. The counter at the top tells you how many lines it found and whether any of them already start with a number, which is what decides the menu underneath.
Say what should happen to numbers the list already has
Letting each number travel with its line is the plain reversal: item 1 keeps its 1 and simply ends up at the bottom, which is right when the number is part of the entry — a ranking, a numbered quote, an issue reference. Renumbering from the top rewrites the markers after the flip so the list still counts 1, 2, 3 downwards while the entries are in the opposite order, which is right for instructions. Taking them off leaves bare text you can number again however you like.
Check the map, then take the result
The table at the bottom lists each line in its new position with the position it came from, so you can confirm that line 1 became line 40 and nothing was dropped on the way. Copy puts the flipped list on the clipboard with the same line endings it arrived with, and Save writes it to reversed-list.txt.
Technical specifications
| What moves | The order of the lines only — the characters, capitals, punctuation and spacing inside each line are never touched |
|---|---|
| Numbering options | Three: carry each number with its line, renumber from the top after the flip, or strip the numbers off completely |
| Markers recognised | 1. · 1) · (1) · [1] · 01. · I. · iv) · A. · b) — decimal, upper and lower Roman numerals and letters, with or without brackets |
| How renumbering starts | From the lowest number the list already used, so a list running 5 to 12 comes back running 5 to 12, and leading zeros are restored to the same width |
| Line endings | Windows, Unix and classic Mac endings are all detected on the way in and written back out in the same form |
| Blank lines | Dropped by default so the trailing newline from a text box cannot become the first line; keep them and they flip with everything else |
| Capacity, speed and the position map | No cap; 250,000 lines are reversed in under 40 ms on a current laptop, since the work is a single pass over the list. The map beneath the boxes shows the first 60 result lines with the position each came from, while the output box holds every one |
| Price | Free, no signup, and nothing is uploaded to reverse it |
Frequently asked questions
How do I reverse the order of a list?
Paste it into the box above and the flipped version appears immediately, last line first. Nothing needs to be pressed, uploaded or installed, and the list can be as long as you like. If your list is a single line with commas in it rather than one item per line, split it up first — this page works line by line, which is what keeps a line containing a comma from being torn in half.
Does it change the words inside each line?
No. Every line comes through exactly as it was written, including its capitals, punctuation, emoji and any indentation you asked to keep. Only the order of the lines changes. That is the difference between this page and the ones that reverse characters: here the last line moves to the top still reading forwards, rather than arriving backwards.
My list is numbered 1 to 40 — what happens to the numbers?
That is your choice, and the three options mean genuinely different things. Carrying the numbers along keeps 40 at the top and 1 at the bottom, which is what a countdown of a chart wants. Renumbering rewrites them after the flip so the list reads 1 to 40 downwards over the reversed entries, which is what a set of steps wants. Both keep the style the list already used — a list written 01. comes back 01., a list written (iv) comes back in lower-case Roman numerals in brackets, and renumbering restarts from the lowest number the list contained rather than assuming 1.
Is reversing a list the same as sorting it Z to A?
No, and confusing the two is the commonest mistake here. Reversing takes the order you already have and turns it upside down; sorting throws that order away and rebuilds it from the contents of each line. Reverse a list of names entered at random and you get the same random names in the opposite random order. Only when a list is already sorted A to Z do the two produce the same result — and even then not quite, because a Z-to-A sort re-decides what to do with capitals and accents while a reversal never looks at the text at all. If it is alphabetical order you are after, sorting is the tool.
What about the header row at the top of my list?
It will end up at the bottom, because it is just another line. Cut it out before you paste, flip the rest, and put it back on top afterwards — that is quicker than any option a tool could offer, and it avoids guessing wrong about which lines are headers. The same applies to a footer, a total or a signature line, and it is worth checking a spreadsheet column for a hidden trailing blank line before you paste it, since a blank flipped to the top of a list is easy to miss.
What happens to blank lines and bullet points?
Blank lines are dropped by default, which is nearly always what you want, because the trailing newline every text box leaves behind would otherwise become the first line of your result. Untick that box and the blanks are flipped along with everything else, preserving the spacing between blocks. Bullets are left completely alone: a dash or a • at the start of a line is part of the line, and unlike a number it carries no order, so there is nothing to rewrite.
How long a list can this handle?
A quarter of a million lines flips in well under a tenth of a second, and there is no imposed cap at all. Reversing is a single pass over an array: a list ten times longer costs ten times as much and no more. The table underneath the boxes shows only the first 60 lines to keep the page responsive, while the output box always holds the whole list.
Lists arrive in the wrong order more often than you would think
Almost everything that keeps a record hands it to you newest first. Bank statements, chat exports, changelogs, order histories, message threads, revision logs, the backup folder sorted by date — all of them lead with the most recent entry because that is what you usually want to see, and all of them become awkward the moment you need to read the story forwards. The same problem arrives from the other direction when a colleague sends a ranked list bottom-up for dramatic effect, or when a survey tool exports responses in the order they were received and the report wants them the other way round. None of this is a sorting problem: the order is already correct, it is simply pointing the wrong way.
The numbers are what make it interesting. In a word processor, the number in front of a list item is not text at all — it is generated by the paragraph style, so dragging an item to a new position silently renumbers the whole list. In plain text there is no such machinery: the 7. at the start of a line is seven characters of ordinary text that travel wherever the line goes. Which behaviour you want depends on what the number means. If it identifies the entry — a ranking, a requirement reference, a question number in a paper — it must stay attached, and a reversed list will properly count downwards. If it only marks position, as in a set of instructions, it has to be rewritten or the reversed procedure will look like it starts at step 40. This page keeps both options in the open rather than choosing for you, and it preserves the style it found, brackets, Roman numerals, leading zeros and all.
Worth keeping separate in your head: reversing is not the opposite of alphabetical. A reversal knows nothing about the contents of a line, so it cannot put anything into order — it can only undo the order you have. When you want the list arranged by what the lines actually say, use sort lines alphabetically, which also handles natural order, length and locale-specific alphabets. If the flipped list needs fresh markers rather than the ones it came with, the numbered list generator stamps them on in nine styles, and if flipping revealed that half the entries appear twice, remove duplicate lines keeps the first copy of each and tells you how many went.
Where the flip happens
On your own machine. A guest list, a set of interview notes or an exported chat thread is reversed by JavaScript sitting in this tab, with no upload and no copy kept anywhere — which is the practical reason a client's data is safe to paste here. Nothing carries over to your next visit either: the boxes are empty every time the page loads, and the downloaded file is assembled locally rather than fetched.