
🗑 Как удалить дубликаты строк в Notepad++: 3 способа
Дубликаты строк в логах, CSV-выгрузках и конфигах, headache, знакомый каждому, кто хоть раз разбирал 500-мегабайтный дамп базы руками. Открываешь файл, а там половина строк повторяется. Удалять вручную, гиблое дело на тысячи строк.
Notepad++ закрывает этот вопрос за секунды. В арсенале редактора три способа: от встроенной функции в два клика до регулярных выражений для сложных сценариев. Выбирайте под свою задачу.
💡 Быстрый обзор:
- Способ 1, встроенная функция: Edit → Line Operations → Remove Duplicate Lines. Два клика, работает с v7.6+, 64-бит.
- Способ 2, регулярное выражение: удаляет дубликаты без сортировки, сохраняя порядок строк. Гибко настраивается.
- Способ 3, плагин TextFX: классика, но только для 32-битной версии. Для 64-бит есть форк TextFX2.
Способ 1: встроенная функция Notepad++
Самый простой и быстрый метод. Появился в версии 7.6 и работает во всех современных сборках, включая актуальную v8.9.6. Никаких плагинов ставить не нужно, всё из коробки.
Откройте файл в Notepad++, выделите всё содержимое (Ctrl + A) и перейдите в меню Edit → Line Operations → Remove Duplicate Lines. Готово, все повторяющиеся строки удалены, остались только уникальные.
Здесь же есть вариант Remove Consecutive Duplicate Lines, он убирает только те дубликаты, которые идут подряд, не трогая такие же строки в других местах файла. Полезно для чистки логов, где повторы накапливаются блоками.
Обратите внимание: функция удаляет ВСЕ дубликаты, оставляя только первое вхождение каждой строки. Если в файле есть осмысленные повторы (например, одинаковые закрывающие скобки в JSON или XML), этот способ не подойдёт. Тогда смотрите способ 2 с регуляркой.
Способ 2: поиск и замена по регулярному выражению
Регулярное выражение даёт полный контроль. В отличие от встроенной функции, оно позволяет удалить дубликаты без предварительной сортировки, строки остаются в исходном порядке, а повторы исчезают.
Откройте диалог поиска (Ctrl + H), переключитесь на вкладку Replace и заполните поля:
Поле | Значение |
|---|---|
Find what |
|
Replace with | (оставьте пустым) |
Search Mode | Regular expression |
. matches newline | Снимите галочку |
Нажмите Replace All. Notepad++ пройдёт по всему файлу, найдёт строки, которые повторяются где-то дальше, и удалит их. В результате для каждого набора дубликатов останется последнее вхождение.
Как это работает: ^(.*?)$ захватывает строку в первую группу, \s+? перепрыгивает пробелы между строками, а (?=.*^\1$), positive lookahead, который проверяет, встретится ли эта же строка (\1) дальше в файле. Если да, текущее вхождение удаляется.
Плюс регулярки в том, что шаблон можно адаптировать. Например, добавить ^ в начало захвата если нужно точное совпадение с начала строки, или заменить \s+? на \r?\n для жёсткой привязки к переводу строки.
Способ 3: плагин TextFX
Классический метод, которому много лет. TextFX был стандартным плагином в старых 32-битных сборках Notepad++. Сегодня ситуация изменилась: оригинальный TextFX несовместим с 64-битной версией начиная с v8.4 и исключён из стандартной поставки.
Если вы используете 32-битный Notepad++, плагин устанавливается через Plugins → Plugin Manager → Show Plugin Manager → Available → TextFX → Install. После установки в меню появится раздел TextFX → TextFX Tools.

Убедитесь, что отмечен флажок Sort lines case sensitive (или case insensitive, по вашему выбору). Выделите текст (Ctrl + A) и нажмите Sort lines case sensitive. Плагин отсортирует строки, дубликаты встанут рядом. После этого в меню Edit → Line Operations → Remove Consecutive Duplicate Lines удалит повторы.
Для 64-битной версии есть современный форк, TextFX2. Он доступен на GitHub (rainman74/NPPTextFX2) и устанавливается вручную: скачайте DLL, положите в папку plugins\NPPTextFX2 внутри директории Notepad++ и перезапустите редактор. Функциональность та же: сортировка, удаление дубликатов, конвертация регистра.
Если задача разовая, а ставить плагин не хочется, способа 1 более чем достаточно.
⁉️🤔 Частые вопросы
Почему Notepad++ удаляет не все дубликаты?
Скорее всего, строки не идентичны побайтово. Проверьте невидимые символы: лишние пробелы в конце, табуляцию вместо пробелов, разный регистр букв. Включите View → Show Symbol → Show All Characters, станет видно, чем строки отличаются.
Как удалить дубликаты БЕЗ учёта регистра?
Встроенная функция Remove Duplicate Lines учитывает регистр: строки «WordPress» и «wordpress» для неё разные. Чтобы убрать дубликаты без учёта регистра, сначала приведите текст к одному регистру через Edit → Convert Case to → Lowercase (или Uppercase), затем запустите Remove Duplicate Lines. Либо используйте способ 2 с regex-флагом
(?i)в начале шаблона.
Можно ли удалить дубликаты сразу в нескольких файлах?
Notepad++ не поддерживает множественный поиск с заменой по regex через штатный интерфейс. Но можно использовать Find in Files (Ctrl + Shift + F), он найдёт строки по regex во всех файлах папки. Для пакетной замены в нескольких файлах удобнее скрипт на Python или PowerShell: читаете файл, применяете regex, перезаписываете. Либо плагин Python Script для Notepad++ с самописным скриптом.
Что быстрее на большом файле, встроенная функция или regex?
Встроенная Remove Duplicate Lines ощутимо быстрее на файлах от 50 МБ и выше, это нативный код C++, а не движок регулярных выражений. Regex-метод начинает заметно тормозить на сотнях тысяч строк из-за lookahead-проверок. Для сравнения: на CSV-файле в 200 000 строк встроенная функция отрабатывает за 2-3 секунды, regex, за 15-20.
Удалил дубликаты, как отменить если не то?
Ctrl + Z отменяет последнюю операцию. Если закрыли файл без сохранения, просто не сохраняйте изменения при выходе. В любом случае перед массовыми правками скопируйте исходный файл в соседнюю папку, занимает секунду, экономит часы.
Какой способ выбрать под вашу задачу
Если нужно быстро почистить логи или CSV от повторов, берите встроенную функцию (способ 1). Два клика, мгновенный результат, никаких плагинов. Это выбор по умолчанию для подавляющего большинства сценариев. Результат виден сразу, без дополнительных действий.
Regex (способ 2), когда важен исходный порядок строк или нужна тонкая настройка: удалять дубликаты только в выделенном фрагменте, игнорировать регистр, обрабатывать вложенные повторы. Круче, но требует понимания синтаксиса.
TextFX (способ 3), только если вы на 32-битной версии и привыкли к этому рабочему процессу. Для 64-бит есть TextFX2, но с появлением встроенной функции смысл в плагине почти отпал.
Попробуйте встроенную функцию прямо сейчас на любом текстовом файле с повторами. Займёт 5 секунд.



