Удаление повторяющихся строк в Notepad ++
Можно ли удалить дублированные строки в Notepad ++, оставив только одно вхождение строки?
Ответы
Ответ 1
Notepad ++ может это сделать, если вы хотите сортировать по строке и удалять повторяющиеся строки одновременно.
Вам понадобится плагин TextFX. Раньше это было включено в старые версии Notepad ++, но если у вас есть более новая версия, вы можете добавить ее из меню, перейдя в Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
. В некоторых случаях его также можно назвать TextFX Characters
, но это то же самое
Необходимые флажки и кнопки теперь появятся в меню под: TextFX -> TextFX Tools
.
Удостоверьтесь, что отмечены "сортировки" только уникальные... ". Затем выберите блок текста (Ctrl + A, чтобы выбрать весь документ). Наконец, нажмите" Сортировка строк с учетом регистра "или" Сортировка строк нечувствительна к регистру"
![menu layout in n++]()
Ответ 2
Так как Notepad ++ Version 6, вы можете использовать это регулярное выражение в диалоге поиска и замены:
^(.*?)$\s+?^(?=.*^\1$)
и заменить ничего. Это оставляет из всех повторяющихся строк последнее вхождение в файл.
Для этого не требуется сортировка, и повторяющиеся строки могут быть в любом месте файла!
Вам нужно проверить параметры "Регулярное выражение" и ". соответствует новой строке":
![Notepad++ Replace dialogue]()
-
^
соответствует началу строки.
-
(.*?)
соответствует любым символам 0 или более раз, но как можно меньше (он точно соответствует строке, это необходимо из-за опции ". matches newline" ). Соответствующая строка сохраняется из-за скобок вокруг и доступна с помощью \1
-
$
соответствует концу строки.
-
\s+?^
эта часть соответствует всем пробельным символам (новые строки!) до начала следующей строки == > Это удаляет новые строки после строки matchd, так что после замены не будет пустой строки.
-
(?=.*^\1$)
это положительное утверждение. Это важная часть в этом регулярном выражении, строка только сопоставляется (и удаляется), когда есть точно такая же строка, следующая где-то в файле.
Ответ 3
Если строки располагаются сразу после друг друга, вы можете использовать регулярное выражение:
Шаблон поиска: ^(.*\r?\n)(\1)+
Заменить на: \1
Ответ 4
Notepad++
-> Заменить окно
Убедитесь, что в режиме поиска вы выбрали переключатель "Регулярное выражение"
Найдите что:
^(.*)(\r?\n\1)+$
Заменить на:
$1
Перед тем:
и мы думаем, что там
и мы думаем, что там
одна строка
Можно ли
Можно ли
После того, как:
и мы думаем, что там
одна строка
Это возможно
Ответ 5
Если вам не важен порядок строк (что, я думаю, вам не нравится), вы можете использовать Linux/FreeBSD/Mac OS X/Cygwin и сделать:
$ cat yourfile | sort | uniq > yourfile_nodups
Затем снова откройте файл в Notepad++.
Ответ 6
Последние версии Notepad++, по-видимому, вообще не включают плагин TextFX. Чтобы использовать плагин для сортировки/удаления дубликатов, плагин должен быть либо загружен и установлен (более задействован), либо добавлен с помощью менеджера плагинов.
A) Простой способ (как описано здесь).
Плагины → Диспетчер плагинов → Показать диспетчер плагинов → вкладка "Доступно" → Символы TextFX → Установить
Б) Более сложный способ, если нужна другая версия или простой способ не работает.
Загрузите плагин с SourceForge:
http://downloads.sourceforge.net/project/npp-plugins/TextFX/TextFX%20v0.26/TextFX.v0.26.unicode.bin.zip
Откройте ZIP файл и извлеките NppTextFX.dll
Поместите NppTextFX.dll в каталог плагинов Notepad++, например:
C:\Program Files\Notepad++\plugins
Запустите Notepad++, и TextFX станет одним из пунктов меню файла (как видно из ответа №1 выше Колина Пикарда)
После установки плагина TextFX следуйте инструкциям в Ответе № 1, чтобы отсортировать и удалить дубликаты.
Кроме того, рассмотрите возможность настройки сочетания клавиш с помощью Настройки> Shorcut mapper, если вы часто используете эту команду или хотите скопировать сочетания клавиш, такие как F9 в TextPad для сортировки.
Ответ 7
Вам может понадобиться плагин для этого. Вы можете попробовать командную строку cc.ddl
(удалить повторяющиеся строки) из ConyEdit. Это кросс-редактор плагин для текстовых редакторов, в том числе Notepad++.
Когда ConyEdit работает в фоновом режиме, выполните следующие действия:
-
введите командную строку
cc.ddl
в конце текста.
- Скопируйте текст и командную строку.
- Вставьте, тогда вы увидите, что вы хотите.
Пример
![enter image description here]()
Ответ 8
Поиск регулярного выражения: \b(\w+)\b([\w\W]*)\b\1\b
Замените его на: $1$2
Нажимайте кнопку "Заменить", пока в вашем файле больше не будет совпадений с регулярным выражением.
Ответ 9
Никто не работал для меня.
Решение:
Заменить
^(.*)\s+(\r?\n\1\s+)+$
с
\1
Ответ 10
Менеджер плагинов в настоящее время недоступен (не входит в дистрибутив) для Notepad++. Вы должны установить его вручную (https://github.com/bruderstein/nppPluginManager/releases), и даже если вы это сделаете, многие плагины больше не будут доступны (без TextFX).
Может быть, есть другой плагин, который содержит необходимые функции. Кроме этого, единственный способ сделать это в Notepad++ - использовать некоторое специальное регулярное выражение для сопоставления и последующей замены (Ctrl + F & rarr; Заменить вкладку).
Хотя в меню Изменить доступно множество функций (обрезка, удаление пустых строк, сортировка, преобразование EOL), "уникальная" операция недоступна.
Если у вас Windows 10, вы можете включить Bash (просто введите Ubuntu в Microsoft Store и следуйте инструкциям в описании для его установки) и используйте cat your_file.txt | sort | uniq > your_file_edited.txt
. Конечно, вы должны находиться в том же рабочем каталоге, что и "your_file.txt", или обращаться к нему по его пути.