Удаление повторяющихся строк в 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 → Установить

Б) Более сложный способ, если нужна другая версия или простой способ не работает.

  1. Загрузите плагин с SourceForge:

    http://downloads.sourceforge.net/project/npp-plugins/TextFX/TextFX%20v0.26/TextFX.v0.26.unicode.bin.zip

  2. Откройте ZIP файл и извлеките NppTextFX.dll

  3. Поместите NppTextFX.dll в каталог плагинов Notepad++, например:
    C:\Program Files\Notepad++\plugins

  4. Запустите Notepad++, и TextFX станет одним из пунктов меню файла (как видно из ответа №1 выше Колина Пикарда)

После установки плагина TextFX следуйте инструкциям в Ответе № 1, чтобы отсортировать и удалить дубликаты.

Кроме того, рассмотрите возможность настройки сочетания клавиш с помощью Настройки> Shorcut mapper, если вы часто используете эту команду или хотите скопировать сочетания клавиш, такие как F9 в TextPad для сортировки.

Ответ 7

Вам может понадобиться плагин для этого. Вы можете попробовать командную строку cc.ddl (удалить повторяющиеся строки) из ConyEdit. Это кросс-редактор плагин для текстовых редакторов, в том числе Notepad++.

Когда ConyEdit работает в фоновом режиме, выполните следующие действия:

  1. введите командную строку cc.ddl в конце текста.
  2. Скопируйте текст и командную строку.
  3. Вставьте, тогда вы увидите, что вы хотите.

Пример
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", или обращаться к нему по его пути.