Удаление дублей строк: 3 способа быстрого решения проблемы

В своей повседневной деятельности очень часто сталкиваюсь с необходимостью быстро удалить дубли из каких-либо списков. Особенно актуальна данная процедура при работе с огромными массивами данных. Кто сталкивался с подобным, знает, что при работе со списками на несколько сот мегабайт, а то и несколько гигабайт, на первый план выходит быстродействие, ибо даже открыть такой файл на среднестатистическом компьютере (ноутбуке) бывает весьма проблематично. А посему сразу отпадают всевозможные и многочисленные онлайн сервисы, т.к. при их использовании накладываются огромные ограничения как каналом связи, так и возможностями браузера. При этом последний превращается в прожорливого до памяти монстра! Но как вы уже поняли из заголовка, выход есть и даже не единственный. Итак, поехали.

1. Удаление дублей при помощи Excel

Для того, чтобы воспользоваться данным способом, проделайте следующий ряд манипуляций:

  1. Перейдите по вкладку «Данные».
  2. Нажмите «Удалить дубликаты».
  3. На запрос выбора столбцов для удаления убедитесь, что выделены все. Если это не так, то нажмите «Выделите все»
  4. Нажмите «ОК».

23-11-2015 13-46-48

Теперь осталось лишь дождаться процесса завершения работы программы и сохранить полученный результат.

Вывод: данный способ прост до безумия, однако величина списка ограничена максимальным количеством строк на листе редактора — 1 048 576 (версии 2007, 2010, 2013). Что касается скорости работы, то она очень даже высокая. Если ваш список укладывается в данный объём, то смело используйте его. Но что делать, если список больше?

2. Удаление дублей при помощи бесплатной программы Text Duplicate Killer

Для начала скачайте и установите утилиту. Скачать её можно здесь. Сразу после установки запустите её и сделайте следующее:

  1. Укажите ссылку на файл со списком
  2. Укажите выходной файл, нажав на волшебную палочку (файл сохранится в той же папке, что и основной список).
  3. Нажмите кнопку «Старт»

23-11-2015 13-57-35

Дождитесь завершения работы программы и наслаждайтесь результатом.

Вывод: способ очень хорош тем, что не имеет ограничений по объёму списка, весьма стабилен, не требователен к памяти, а также тем, что позволяет работать с файлами без их предварительного открытия, что избавляет от дополнительного ожидания в самом начале в отличии от первого способа с Excel. Однако по причине того, что программа разбивает список на множество мелких подсписков, работает она со средней скоростью, которую иногда хотелось бы подувеличить 🙂

3. Удаление дублей при помощи бесплатной программы Notepad++

Чтобы воспользоваться данным способом, необходимо скачать редактор с официального сайта. Кстати, после установки выкиньте блокнот и переходите на эту программулину. Затем необходимо сделать следующее (подготовительный этап):

  1. Откройте меню «Плагины».
  2. Перейдите в подменю «Plugin Manager».
  3. Выберите пункт «Show Plugin Manager».
  4. В первой вкладке под названием «Avaliable» найдите и отметьте плагин под названием «TextFX Characters».
  5. Нажмите на кнопку «Install».

23-11-2015 14-37-21

После завершения установки необходимо обязательно перезапустить программу. После этого в верхнем меню у вас отобразится новый пункт «TextFX» — это и есть тот инструмент, которым мы будем наводить марафет внутри нашего списка.

Теперь дело осталось за малым. Выделяем необходимый кусок текста, а т.к. речь идёт о списке целиком, то жмем заветную комбинацию Ctrl+A и выполняем следующую последовательность действий:

  1. Идем в меню «TextFX».
  2. Идём в подменю «TextFX Tools».
  3. Обязательно смотрим, чтобы была активна галка «+Sort outputs only UNIQUE (at column) lines».
  4. Жмем «Sort lines case sensitive (at column)».

23-11-2015 14-54-59

Вот и все. Ждем окончания процесса.

Вывод: несмотря на долгий с первого взгляда ритуал подготовки к удалению, данный способ прежде всего хорош тем, что делает свою работу неимоверно быстро. Алгоритм работы программы устроен таким образом, что даже открытие файлов по несколько сот мегабайт не занимает много времени. Так, например, удаление дублей из списка объёмом 707 мегабайт у меня заняло всего лишь порядка 40 секунд (CPU i5 2.4; 4GB RAM). Это несомненный лидер из данного списка по скорости работы.

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

One Comment

  1. Кирилл 23.02.2018 в 11:06 - Ответить

    C помощью данной инструкции справился с поставленной задачей по удалению дублей строк. Благодарю!

Оставить комментарий