How do I sort lines in numeric order in Notepad++?

This is now easy to achieve (at least in Notepad++ 7.5.9):

Use the menu item: Edit -> Line Operations -> Sort Lines As Integers Ascending

(Note if you don't select any text it will sort the entire file, and if you select text it constrains the sorting to the selected text.)


I don't know what your file looks like, but I'd use regular expressions to add spaces or zeros before each number to make them the same length (e.g. 2 becomes 002). Then they will sort correctly and you can use another replacement to strip the leading spaces/zeros afterwards.

These are the steps (works for number up to 10 characters)

Find: ^ Replace: 0000000000

Find: \d*(\d{10}) Replace: \1

Sort

Find: ^0* Replace:

It works by adding 10 zeros before the number, even though that's probably too much. The second replacement than takes the last 10 digits of the number to bring everything back to the same length, giving you numbers like 0000000839, 0000000003 etc. Those will sort in the order you want them to sort. Once sorted the last expression will strip all leading zeros so you'll have your original numbers back.

If you need longer numbers just add more zeros to the first replacement, and increase the 10 in the second replacement accordingly. If you're going to do this more often you could record a macro with these steps.

Tags:

Notepad++