Как удалить дубликаты строк

Частный ремонт компьютеров Марьино

Как удалить дубликаты строк

17 декабря, 2020 Статьи 0
удаление дубликатов строк excel

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

Удаление дубликатов в Excel

Практически на любом компьютере установлен Microsoft Excele:

  1. Вставьте в документ текст, который необходимо очистить
  2. Перейдите во вкладку данные
  3. Выделите столбец, который нужно очистить от дубликатов и нажмите кнопку удалить дубликаты.
  4. Опционально выберите один или несколько столбцов
Как удалить дубликаты строк
Удаление дубликатов в Microsoft Exele

Минусы:

  • Требуется сторонняя программа.
  • Не подходит для файлов больше 10 мегабайт.

Плюсы:

  • Microsoft Excele есть почти на любом компьютере.
  • Быстрый процесс удаления дубликатов.

Онлайн удаление дубликатоов

Тут все предельно просто: вставляем текст в одну колонку, в другой получаем результат. Иногда пользуюсь сам, когда нужно очистить небольшой текст от дубликатов.

Подобных сервисов очень много, но я пользуюсь этим:
http://konstantinbulgakov.com/tools/duplicate

Минусы:

  • Подходит только для маленьких файлов.
  • Нужно подключение к интернету.

Плюсы:

  • Очень простой способ удаления дубликатов
  • Быстро работает (если строк не много)

Текстовый редактор — регулярные выражения

Для этого способа подходит практически любой текстовый редактор, разве что стандартный Блокнот Windows не подойдет:

  • Откройте файл в текстовом редакторе.
  • Откройте в меню поиск с заменой или search and replace в англоязычной версии. Часто Control+F.
  • Выберите режим работы с регулярными выражениями, если ваш редактор требует режим для регулярных выражений.
  • В поле Найти вставьте регулярное выражение:
^(.*)(\n\1)+$
  • В поле Заменить на вставьте:
$1
  • Нажмите на кнопу Заменить все.
pc-maryno.ru
Удаления дубликатов в тестовом редакторе

Минусы:

  • Не подходит для больших файлов (тестовый редактор может зависнуть).
  • Требуется установка стороннего текстового редактора (Блокнот Windows не умеет работать с регулярными выражениями).

Плюсы:

  • Достаточно быстрый способ.
  • Легко пользоваться.

Программа для удаления дубликатов строк

Простая и быстрая утилита для удаления дубликатов в тесте

  1. Выбираем .txt файл с дубликатами в Input
  2. Выбираем куда сохранить файл без дубликатов в Output
  3. Запускаем процесс удаления кнопкой Go
Как удалить дубликаты строк
Программа для удаления дубликатов строк

Минусы:

  • Использование стороннего приложения.

Плюсы:

  • Быстрота работы.
  • Подходит для больших файлов.
  • Не нужно устанавливать
  • Очень маленький размер программы

Скачать | Пароль к архиву: pc-maryno.ru


Скрипт в PowerShell или в командной строке

Это самый быстрый с способ очистки любых тестовых файлов от дубликатов строк. Я сам постоянно пользуюсь им. Очистка txt файла размером 100 мегабайт занимает 1 секунду!

Освоив его один раз, вы не захотите пользоваться другими способами, а вся прелесть еще и в том, что вам нужна только командная строка и ничего более.

  • Откройте папку с текстовым файлом, зажмите Shift и кликните правой кнопкой мыши в любом свободном месте.
  • Выберите пункт открыть окно PowerShell, либо открыть окно CMD.
Как удалить дубликаты строк
Открыть командую строку в папке

Если сортировка не нужна

  • Вставляем в командную строку код:
$Lines = [System.Collections.Generic.HashSet[string]]::new()
$Lines.UnionWith([string[]][System.IO.File]::ReadAllLines('c:\path\to\Дубликаты.txt'))
[System.IO.File]::WriteAllLines('c:\path\to\Результат.txt', $Lines)

Где в ReadAllLines необходимо указать путь до файла с дубликатами, например ReadAllLines(‘c:\Папка с файлами\Дубликаты.txt’))

И WriteAllLines указать файл, в котором сохранить результат с удаленными дубликатами, например ReadAllLines(‘c:\Папка с файлами\результат.txt’))

Как удалить дубликаты строк
Удаление дубликатов без сортировки

Выполняем скрипт нажатием на ENTER.

Если нужна сортировка

  • Открываем в папке с очищаемым файлом командную стоку либо PowerShell
  • Вставляем в командную строку код:
$stream = [System.IO.StreamWriter] "Результат.txt"
$UniqueItems = [system.collections.generic.list[string]]([System.Collections.Generic.HashSet[string]]([System.IO.File]::ReadLines("Дубликаты.txt")))
$UniqueItems.sort()
$UniqueItems | % { $Stream.writeline($_) }
$Stream.close()

Где System.IO.StreamWriter указываем название файла с результатом, например «Результат.txt»

И System.IO.File указываем название файла, очищаемого от дубликатов, например «Дубликаты.txt»

Как удалить дубликаты строк
Удаление дубликатов с сортировкой

Выполняем скрипт нажатием на ENTER и получаем сортированный, очищенный от дубликатов файл.

Минусы:

  • Нужно использовать командную строку (для многих пользователей это барьер).
  • Легко пропустить символ и скрипт не сработает, нужно быть внимательным.
  • Что бы скрипт в этой инструкции работал, командную строку нужно запускать в папке с файлом с дубликатами.

Плюсы:

  • Это самый быстрый способ удаления дубликатов — 100 мегабайтный файл очищается на за несколько секунд.
  • Работает почти с любыми форматами тестовых файлов, не только с txt, пробуйте.
  • Не нужно ничего кроме командной строки, которая есть в любой операционной системе.

Лучшие способы удаления дубликатов

Мне по роду деятельности достаточно часто приходится очищать тексты от дубликатов строк, и я выскажу собственное мнение:

  1. Если дубликатов немного, то часто я использую Excel. Он есть почти на любом компьютере, и он быстро удаляет дубликаты в небольших файлах. Я использую его только если файл не превышает 10 мегабайт, а в 99% случаев, вы будете работать с файлами, которые не превышают этот объем.
  2. Второй способ, который я предпочитаю — это скрипт. Можно долго описывать его плюсы, но вам будет достаточно знать, что это единственный способ, который работает с файлами огромного объёма за секунды, в то время как у некоторых программ на это уходят часы.

Определенно стоит преодолеть психологический барьер/лень и начать пользоваться командной строкой — это не только очень сильно может сэкономить вам время, но и открывает большой горизонт возможностей по использованию скриптов в любой области.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *