Как сортировать строки в числовом порядке в Notepad++?

С помощью Notepad++ V6 двигателем.6.8 с TextFX.

Как сортировать строки в числовом порядке, а не в алфавитно-цифровом?

то есть я хочу, чтобы строки сортировались следующим образом:

1
2
10
11
15
20

нет:

1
10
11
15
2
20
6
задан User
05.03.2023 4:33 Количество просмотров материала 3273
Распечатать страницу

4 ответа

Я не знаю, как выглядит ваш файл, но я бы использовал регулярные выражения для добавления пробелов или нулей перед каждым номером, чтобы сделать их одинаковой длины (например, 2 становится 002). Затем они будут отсортированы правильно, и вы можете использовать другую замену, чтобы впоследствии удалить начальные пробелы/нули.

это шаги (работает для числа до 10 символов)

найти: ^ Заменить:0000000000

найти: \d*(\d{10}) Заменять:

вроде

найти: ^0* Заменить:

это работает, добавляя 10 нулей перед числом, хотя это, вероятно, слишком много. Вторая замена не занимает последние 10 цифр номера, чтобы вернуть все к той же длины, что дает вам номера, как 0000000839, 0000000003 и т. д. Они будут отсортированы в том порядке, в котором вы хотите их сортировать. После сортировки последнее выражение будет лишить все ведущие нули, так что вы будете иметь ваши оригинальные номера спина.

Если вам нужны более длинные числа, просто добавьте больше нулей к первой замене и увеличьте 10 во второй замене соответственно. Если вы собираетесь делать это чаще, вы можете записать макрос с помощью этих шагов.

5
отвечен AVee 2023-03-06 12:21

Я не пробовал это, но есть плагин, который утверждает, чтобы сделать это (до тех пор, как строки начинаются с номером). Вот ссылка: http://www.scout-soft.com/linesort/

обновление Хорошо, что плагин, по-видимому, ушел на данный момент. Возможно, он не работает с новыми версиями NP++. Вот еще один, который я видел в менеджере плагинов, поэтому он, по крайней мере, более распространен: http://william.famille-blum.org/blog/index.php?entry=entry110123-113226

Я только что попробовал на 6.6.9, и это немного неудобно (не забудьте нажать кнопку Добавить в диалоговом окне), но работает отлично.

1
отвечен krowe 2023-03-06 14:38

выберите все и скопируйте текст в Excel или другую электронную таблицу, используйте пользовательскую сортировку. Каждая строка должна вставить в одну ячейку, А1, В1 и т. д. Просто нужно установить поле как цифру, а не текст. Это делается путем установки формата ячейки или с помощью функции TEXT. Вставьте обратно в notepad++.

в более сложном случае, когда OP имеет текст, смешанный с числами (например, "1 Первая строка", "12 Двенадцатая строка"), мы можем создать столбец сортировки для организации списка. В виду того что космос после номера, мы можно найти это пространство, чтобы создать столбец только с числами, используя =LEFT (A1,FIND (" ", A1,1)). После распространения функции на весь столбец мы можем отсортировать оба столбца на основе порядка сортировки столбцов (т. е. числового порядка), а затем скопировать первый столбец обратно в правильном порядке. Точная формула для копирования номера строки будет зависеть от формата строки, но приведенная выше команда должна работать с незначительными изменениями в большинстве случаев, в противном случае Stack exchange имеет дополнительные примеры подобных рецептурный.

1
отвечен J Vook 2023-03-06 16:55

плагин сортировки столбцов

http://william.famille-blum.org/software/nppcolumnsort/NppColumnSort-1.0.0.2.zip

вы должны указать начальный столбец для чисел (обычно 1, первый) и длину для сравнения (максимальное количество цифр). Затем установите порядок сортировки " по возрастанию "и тип сравнения"числовой".

-2
отвечен user3177026 2023-03-06 19:12

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх