С помощью Notepad++ V6 двигателем.6.8 с TextFX.
Как сортировать строки в числовом порядке, а не в алфавитно-цифровом?
то есть я хочу, чтобы строки сортировались следующим образом:
1
2
10
11
15
20
нет:
1
10
11
15
2
20
С помощью Notepad++ V6 двигателем.6.8 с TextFX.
Как сортировать строки в числовом порядке, а не в алфавитно-цифровом?
то есть я хочу, чтобы строки сортировались следующим образом:
1
2
10
11
15
20
нет:
1
10
11
15
2
20
Я не знаю, как выглядит ваш файл, но я бы использовал регулярные выражения для добавления пробелов или нулей перед каждым номером, чтобы сделать их одинаковой длины (например, 2 становится 002). Затем они будут отсортированы правильно, и вы можете использовать другую замену, чтобы впоследствии удалить начальные пробелы/нули.
это шаги (работает для числа до 10 символов)
найти: ^
Заменить:0000000000
найти: \d*(\d{10})
Заменять:
вроде
найти: ^0*
Заменить:
это работает, добавляя 10 нулей перед числом, хотя это, вероятно, слишком много. Вторая замена не занимает последние 10 цифр номера, чтобы вернуть все к той же длины, что дает вам номера, как 0000000839, 0000000003 и т. д. Они будут отсортированы в том порядке, в котором вы хотите их сортировать. После сортировки последнее выражение будет лишить все ведущие нули, так что вы будете иметь ваши оригинальные номера спина.
Если вам нужны более длинные числа, просто добавьте больше нулей к первой замене и увеличьте 10 во второй замене соответственно. Если вы собираетесь делать это чаще, вы можете записать макрос с помощью этих шагов.
Я не пробовал это, но есть плагин, который утверждает, чтобы сделать это (до тех пор, как строки начинаются с номером). Вот ссылка: http://www.scout-soft.com/linesort/
обновление Хорошо, что плагин, по-видимому, ушел на данный момент. Возможно, он не работает с новыми версиями NP++. Вот еще один, который я видел в менеджере плагинов, поэтому он, по крайней мере, более распространен: http://william.famille-blum.org/blog/index.php?entry=entry110123-113226
Я только что попробовал на 6.6.9, и это немного неудобно (не забудьте нажать кнопку Добавить в диалоговом окне), но работает отлично.
выберите все и скопируйте текст в Excel или другую электронную таблицу, используйте пользовательскую сортировку. Каждая строка должна вставить в одну ячейку, А1, В1 и т. д. Просто нужно установить поле как цифру, а не текст. Это делается путем установки формата ячейки или с помощью функции TEXT. Вставьте обратно в notepad++.
в более сложном случае, когда OP имеет текст, смешанный с числами (например, "1 Первая строка", "12 Двенадцатая строка"), мы можем создать столбец сортировки для организации списка. В виду того что космос после номера, мы можно найти это пространство, чтобы создать столбец только с числами, используя =LEFT (A1,FIND (" ", A1,1)). После распространения функции на весь столбец мы можем отсортировать оба столбца на основе порядка сортировки столбцов (т. е. числового порядка), а затем скопировать первый столбец обратно в правильном порядке. Точная формула для копирования номера строки будет зависеть от формата строки, но приведенная выше команда должна работать с незначительными изменениями в большинстве случаев, в противном случае Stack exchange имеет дополнительные примеры подобных рецептурный.
плагин сортировки столбцов
http://william.famille-blum.org/software/nppcolumnsort/NppColumnSort-1.0.0.2.zip
вы должны указать начальный столбец для чисел (обычно 1, первый) и длину для сравнения (максимальное количество цифр). Затем установите порядок сортировки " по возрастанию "и тип сравнения"числовой".
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]