Удалить все строки, которые имеют дубликаты

0

Я не пытаюсь удалить только дубликаты строк. что приведет к оставлению ОДНОГО экземпляра рассматриваемой строки после удаления всех дубликатов. Вместо этого, в случае обнаружения дубликата, удалите все экземпляры, включая оригинал, чтобы строка больше не существовала. Например, с исходным файлом

Huey
Huey
Louie
Huey
Dewey
Donald
Uncle Scrooge 
Donald
Daffy

такой сценарий приведет к

Louie 
Dewey 
Uncle Scrooge  
Daffy

Обратите внимание, что этот пример не представляет, как выглядят данные, это просто пояснение логики, которую я хочу применить к дублированному тексту. Я использую Блокнот ++.

Patrick
источник
notepad-plus-plus.org/community/topic/15297/... может быть полезным
K7AAY
Можете ли вы отсортировать файл? Если да, это будет легко сделать. В противном случае вы не можете сделать это в Notepad ++. Вы должны написать сценарий на вашем любимом языке сценариев.
Toto
Для сортировки в Notepad ++, кстати, потребуется плагин Linesort scout-soft.com/linesort или эквивалент.
K7AAY

Ответы:

2

Вы можете использовать плагин SQL для своего сценария.

Для того, чтобы установить его, сначала необходимо установить PluginManager Посетите эту ссылку: https://github.com/bruderstein/nppPluginManager/releases , Выберите версию, которая подходит вашему N ++, и скачайте ее.

В распакованном виде он имеет следующую структуру.

PluginManager_v1.4.11_x64
| --- плагины
| --- PluginManager.dll
| --- Updater
| --- gpup.exe

Для этого поста я скачал zip 64-битную версию N ++. В распакованном виде он уже содержит плагины и папки обновлений. Я просто скопировал файлы из PluginManager в папки N ++.

Давайте начнем N ++ enter image description here

Давайте установим плагин SQL. enter image description here

Следующий шаг - поместить данные в N ++. Плагин SQL требует имя столбца. Любое имя может быть выбрано. Я просто выбрал «MyColumn». Также требуется разделитель для столбца. Я использовал Regex для этого. В окне замены (Ctrl + H):
Найдите что: \ r \ n | $
Заменить на:, \ r \ n


Теперь у нас есть имя столбца и разделители в каждой строке.
enter image description here

Давайте наконец запустим плагин SQL.
Инструкция SQL: выберите MyColumn из Data GROUP BY MyColumn HAVING COUNT (MyColumn) = 1
Разделитель:,

enter image description here

В результате мы получаем ожидаемые результаты.
enter image description here

wlod
источник
Пожалуйста.
wlod
Что если вы пропустили плагин SQL из списка?
Patrick
Решением моего последнего комментария является установка 32-битной версии Notepad ++. Плагин SQL недоступен в 64-битной версии
Patrick