Как найти дубли в notepad

Notepad++ стал моим первым профессиональным инструментом в веб-разработке и создании сайтов.

И не потому что там есть множество инструментов для работы с исходным кодом, и не из-за обилия плагинов для Notepad++.
Всё проще —  в те далёкие времена уроков по веб-дизайну было не так много, а Notepad++ был приведён в статейке по которой я упражнялся. Это было что-то вроде hello-world для HTML. ?
Ещё тогда меня удивил аскетичный интерфейс утилиты и обилие пунктов меню. И до сих пор Notepad++ это самый навороченный текстовый редактор, которым я ежедневно пользуюсь.

Меню регулярных выражений в notepad

В Notepad++, среди прочего, большое внимание уделяется собственному языку регулярных выражений.
Зная как обозначить запрос специальными поисковыми операторами, в Notepad++ можно реализовывать довольно серьезные задачи и работать с большими массивами данных.

Регулярные выражения могут использоваться в Notepad++ для множества логических операция: сортировка строк, удаление дубликатов, поиск и замена как отдельных символов, так и целых логических конструкций. По сути горизонт возможностей такого функционала не ограничен и зависит только от вашей фантазии по его применению.
Я позволил себе отсортировать регулярные выражения для Notepad++ в порядке их надобности и популярности использования. ?

n — Перенос Enter. Что особенно приятно, может использоваться не только для поиска, но и для замены. Например, благодаря этому регулярному выражению, и двум кликам, вы можете поменять построчный список на список через запятую, и наоборот.

t — Табуляция. Означает то же, что и действие клавиши Tab. Очень полезно, если вы комбинируете работу в excel и notepad++. Знаки tab по умолчанию переносятся как колонки таблицы.

nr — Выражение для поиска пустых строк.

s — Пробел. В большинстве случаем вы можете искать просто введя символ пробела в поле поиска Notepad++, однако в составе сложных регулярных выражений пригодится это обозначение. Например, конструкция ^s*$ найдёт все строки с пробелом.

^ и $ — Символы начала и конца соответственно.

d — Этим регулярным выражением в Notepad++ можно обозначить любую цифру. Учитывайте, что под цифрой подразумевается «единичный экземпляр», а не всё число. Например, применив эту комбинацию в тексте с числом 789, последовательно найдутся все три цифры (7, 8, 9) в этом числе.

.(точка) и .*(точка со звёздочкой)  — Любой символ и любая последовательность оных соответственно.

D — Также найдутся любые символы, но не цифры.

[a-z], [A-Z], [a-Z], [0-9] — На мой взгляд, всё и так понятно, но я поясню. Такие регулярные выражения в квадратных скобках означают последовательность букв или цифр, и регистр искомого выражения.

Примеры и применение регулярных выражений в Notepad++

Согласитесь, весь этот список на вид звучит довольно нудно и напоминает что-то среднее между высшей математикой и программированием. ? Мне стоит привести примеры использования регулярных выражений и символов Notepad++.

Удалить пустые строки в Notepad++

Удалить пустые строки с помощью текстового редактора Notepad++ просто — выше я уже писал регулярное выражение для этого — nr . Его необходимо ввести в окне поиска и замены. При этом поле Замены оставьте пустым. Все пустые строки удалятся из документа, их место займут данные располагающиеся ниже.

Удалить пустые строки регулярным выражением в Notepad++

Либо, что конечно же проще, если ваше выражение больше никаких условий не требует, воспользуйтесь пунктом в меню. Edit => Line Operations => Remove empty lines. Там же есть и пункт для удаления пустых строк с пробелом: Containing Blank Characters.

Удалить всё после символа / перед символом в строке в Notepad++

Регулярное выражение удаление всех данных в строке до определенного символа, или их группы я часто использую, например, при сортировке маркетинговых баз с e-mail.

Для того чтобы в Notepad++ удалить всё в строке перед определенным символом, используйте комбинацию .+(искомая-часть). Давайте я разберу подробнее. Например, у нас есть txt файл с почтовыми адресами коллег, по одному адресу в столбик. Кроме того в этой же строке могут содержаться и ФИО человека через пробел, табирование, или через запятую.

Выглядит это вот так:
nastya@mail.ru Анастасия Евгеньевна Петрова
pasha@yandex.ru Павел Иванов Юрлица
vasya@notepad-plus-plus.ru Василий Павлович Работа

И таких контактов с списке у нас 500. Для того чтобы отделить домены, нам понадобится 2 действия в Notepad++, удалить всё в строках до определенного символа, а затем удалить всё в строках после.

Первая регулярное выражение для нас будет .+(@), в поле замены оставляем пустым.

Результат
mail.ru Анастасия Евгеньевна Петрова
yandex.ru Павел Иванов Юрлица
notepad-plus-plus.ru Василий Павлович Работа

Второе регулярное выражение Notepad для удаления после символа, можно сконфигурировать по доменному суффиксу, запрос будет (.ru.+)$.

mail
yandex
notepad-plus-plus

Удалить дубликаты строк в Notepad++

Удаление дубликатов строк в Notepad++ это вообще отдельная большая тема. Мало кто знает как сконфигурировать поисковой запрос в текстовом редакторе и удалить повторяющиеся строки исключительно через Notepad++, не прибегая к помощи плагинов и сторонних расширений.

Но я — знаю ?. Чтобы удалить построчное дублирование в Notepad, используйте эту фразу:

^(.*?)$s+?^(?=.*^1$)

Удалить дубликаты строк в Notepad++: регулярное выражение

Важно, чтобы все галочки в поиске у вас были включены. И зациклить поиск, и применять регулярные выражения, тогда Notepad++ точно сработает как надо, и удалит из документа дубли строк.

Второй способ избавится от дублирования строк

Второй способ удалить дубликаты строк с помощью Notepad++ абсолютно не элегантен, но функционален при ежедневном использовании. Навигатор по репозиторию дополнений встроен прямо в ваш Notepad. Просто ставим плагин через меню Plugins => Plugin manager.
Нужный нам плагин называется TextFx Characters.
Не слишком сложно, правда? Устанавливаются плагины автоматически, нужно будет только перезагрузить утилиту. Жмёте установить и активировать.

Функционал плагина местами дублирует многие регулярные выражения в Notepad++, а по-моему мнению собственно на них и основан.

Настройка для удаления дубликатов строк находится в меню: Textfx => Tools => Sort Lines insensetive.

Не забудьте выделить данные в редакторе, перед тем как нажимать.

Notepad++: плагины и альтернативы.

Для начала про плагины. Как вы поняли, в Notepad++ система плагинов весьма интуитивна и встроена в редактор. Но, кроме того, существует и множество других дополнений от сторонних авторов — в этом одна из прелестей freeware софта. Пожалуй, я как-нибудь выложу их обзор, если вам будет интересна тема Notepad и эта статья придётся по вкусу.

Что касается альтернатив, Notepad++ любят за регулярные выражения, легкость, простоту и бесплатность. Такое сочетание вообще, пожалуй, единственное в этом кластере, потому лично я не вижу прямых конкурентов и альтернатив для Notepad.

Sublime редактор, который похож на Notepad

Но если посмотреть на нишу шире, можно вспомнить про AkelPad (тоже текстовый редактор), Textmate, LeafPad, Sublime Text, Atom, Brackets…Так можно дойти и до моего любимого Adobe Dreamweaver. Однако, всё это по сути уже не то. Notepad++ неповторим, аскетичен, и по своему прекрасен, и очень в духе софта былых времён. ?

P.S. Если вам была полезна эта статья, оставьте коммент, и я буду знать что двигаюсь в правильном направлении. Или задавайте вопросы! welcome ⬇️⬇️⬇️

Зачастую вы имеете данные большого объема, строки которых повторяются в файле не один раз.

Поскольку дубли (повторения) – это лишний мусор и ненужные данные, то необходимо от них избавиться, и сделать это можно через программу Notepad++.

1. Итак, запустите программу и в верхнем меню нажмите «Plugins», пункты «Plugin Manager» – «Show Plugin Manager»:

Как с помощью Notepad++ удалить повторяющиеся строки (дубли)?

После чего в открывшемся окне, во вкладке «Available» отметьте плагин «TextFX Characters» и нажмите «Install».

Как с помощью Notepad++ удалить повторяющиеся строки (дубли)?

2. Как только плагин успешно установился (если нет – пишите об этом в комментариях), в пустое окно вставьте ваш текст с дублирующимися строками и нажмите комбинацию клавиш:

CTRL + A

Тем самым вы выделяете весь текст.

Перейдите в меню, раздел «TextFX», пункт «TextFX Tools». Проверьте, чтобы здесь стояла галочка у «Sort outputs only UNIQUE (at column) lines»:

Как с помощью Notepad++ удалить повторяющиеся строки (дубли)?

Нажмите «Sort lines case insensitive (at column)». После этих действий дублирующиеся строки в вашем тексте будут удалены.

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

Is it possible to remove duplicated rows in Notepad++, leaving only a single occurrence of a line?

lospejos's user avatar

lospejos

1,9643 gold badges19 silver badges35 bronze badges

asked Oct 18, 2010 at 10:42

Przemysław Michalski's user avatar

0

Notepad++ with the TextFX plugin can do this, provided you wanted to sort by line, and remove the duplicate lines at the same time.

To install the TextFX in the latest release of Notepad++ you need to download it from here: https://sourceforge.net/projects/npp-plugins/files/TextFX

The TextFX plugin used to be included in older versions of Notepad++, or be possible to add from the menu by going to Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install. In some cases it may also be called TextFX Characters, but this is the same thing.

The check boxes and buttons required will now appear in the menu under: TextFX -> TextFX Tools.

Make sure “sort outputs only unique…” is checked. Next, select a block of text (Ctrl+A to select the entire document). Finally, click “sort lines case sensitive” or “sort lines case insensitive”

menu layout in n++

answered Oct 18, 2010 at 10:46

Colin Pickard's user avatar

Colin PickardColin Pickard

45.6k13 gold badges98 silver badges148 bronze badges

24

Since Notepad++ Version 6 you can use this regex in the search and replace dialogue:

^(.*?)$s+?^(?=.*^1$)

and replace with nothing. This leaves from all duplicate rows the last occurrence in the file.

No sorting is needed for that and the duplicate rows can be anywhere in the file!

You need to check the options “Regular expression” and “. matches newline”:

Notepad++ Replace dialogue

  • ^ matches the start of the line.

  • (.*?) matches any characters 0 or more times, but as few as possible (It matches exactly on row, this is needed because of the “. matches newline” option). The matched row is stored, because of the brackets around and accessible using 1

  • $ matches the end of the line.

  • s+?^ this part matches all whitespace characters (newlines!) till the start of the next row ==> This removes the newlines after the matched row, so that no empty row is there after the replacement.

  • (?=.*^1$) this is a positive lookahead assertion. This is the important part in this regex, a row is only matched (and removed), when there is exactly the same row following somewhere else in the file.

qyb2zm302's user avatar

qyb2zm302

6,4482 gold badges17 silver badges17 bronze badges

answered Apr 30, 2013 at 6:27

stema's user avatar

16

If the rows are immediately after each other then you can use a regex replace:

Search Pattern: ^(.*r?n)(1)+

Replace with: 1

Peter Mortensen's user avatar

answered Oct 18, 2010 at 10:53

Grant Peters's user avatar

Grant PetersGrant Peters

7,6613 gold badges45 silver badges57 bronze badges

6

As of Notepad++ version 8.1, there is a specific command to do precisely what this popular question asks. On can remove duplicated rows in a text file with the menu command Edit > Line Operations > Remove Duplicate Lines.

There is no need to install a plugin (as the currently accepted answer suggests), or sort the lines beforehand, or use the regex syntax in the Replace dialogue as other answers suggested.

enter image description here

answered Aug 4, 2021 at 9:24

divenex's user avatar

divenexdivenex

14.6k9 gold badges54 silver badges54 bronze badges

4

In version 7.8, you can accomplish this without any plugins – Edit -> Line Operations -> Remove Consecutive Duplicate Lines. You will have to sort the file to place duplicate lines in consecutive order before this works, but it does work like a charm.

Sorting options are available under Edit -> Line Operations -> Sort By …

PeterK's user avatar

PeterK

1,69710 silver badges20 bronze badges

answered Oct 24, 2019 at 21:28

dr.nixon's user avatar

dr.nixondr.nixon

6475 silver badges11 bronze badges

3

Notepad++

-> Replace window

Ensure that in Search mode you have selected the Regular expression radio button

Find what:

^(.*)(r?n1)+$

Replace with:

$1

Before:

and we think there

and we think there

single line

Is it possible to

Is it possible to

After:

and we think there

single line

Is it possible to

Peter Mortensen's user avatar

answered May 20, 2017 at 22:21

blueberry0xff's user avatar

1

If you don’t care about row order (which I don’t think you do), then you can use a Linux/FreeBSD/Mac OS X/Cygwin box and do:

$ cat yourfile | sort | uniq > yourfile_nodups

Then open the file again in Notepad++.

Peter Mortensen's user avatar

answered Oct 18, 2010 at 10:46

Pablo Santa Cruz's user avatar

Pablo Santa CruzPablo Santa Cruz

176k32 gold badges240 silver badges292 bronze badges

6

The latter versions of Notepad++ do not apparently include the TextFX plugin at all. In order to use the plugin for sorting/eliminating duplicates, the plugin must be either downloaded and installed (more involved) or added using the plugin manager.

A) Easy way (as described here).

Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX Characters -> Install

B) More involved way, if another version is needed or the easy way does not work.

  1. Download the plugin from SourceForge:

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

  2. Open the zip file and extract NppTextFX.dll

  3. Place NppTextFX.dll in the Notepad++ plugins directory, such as:
    C:Program FilesNotepad++plugins

  4. Start Notepad++, and TextFX will be one of the file menu items (as seen in Answer #1 above by Colin Pickard)

After installing the TextFX plugin, follow the instructions in Answer #1 to sort and remove duplicates.

Also, consider setting up a keyboard shortcut using Settings > Shorcut mapper if you use this command frequently or want to replicate a keyboard shortcut, such as F9 in TextPad for sorting.

Community's user avatar

answered Nov 13, 2012 at 16:33

eeasterly's user avatar

eeasterlyeeasterly

7548 silver badges11 bronze badges

1

As of now, it’s possible to remove all consecutive duplicate lines with Notepad in-built functionality. Sort the lines first:

Edit > Line Operations > “Sort lines lexicographically”,

then

Edit > Line Operations > “Remove Consecutive Duplicate Lines”.

The regex solution suggested above didn’t remove all duplicate lines for me, but just the consecutive ones as well.

answered Jun 25, 2020 at 9:06

SaPropper's user avatar

SaPropperSaPropper

4633 silver badges11 bronze badges

You may need a plugin to do this. You can try the command line cc.ddl(delete duplicate lines) of ConyEdit. It is a cross-editor plugin for the text editors, including Notepad++.

With ConyEdit running in background, follow the steps below:

  1. enter the command line cc.ddl at the end of the text.
  2. copy the text and the command line.
  3. paste, then you will see what you want.

Example
enter image description here

answered Jul 7, 2018 at 14:53

Donald's user avatar

DonaldDonald

1311 silver badge4 bronze badges

Search for the regular expression: b(w+)b([wW]*)b1b

Replace it with: $1$2

Hit the Replace button until there are no more matches for the regular expression in your file.

Peter Mortensen's user avatar

answered May 22, 2014 at 13:05

Hesham Eraqi's user avatar

Hesham EraqiHesham Eraqi

2,4244 gold badges22 silver badges45 bronze badges

3

None worked for me.

A solution is:

Replace

^(.*)s+(r?n1s+)+$

with

1

answered Mar 24, 2015 at 0:13

Manohar Reddy Poreddy's user avatar

7

Notepad++ has builtin operations:

Edit -> Line Operations -> Sort Lines...
Edit -> Line Operations -> Remove Duplicate Lines

Maybe it works with just Remove Duplicate Lines, but I needed to see that the operations work by seeing that sorting works.

If it doesn’t work, problem could be with different ending of lines, which I encountered now. You can check it with View -> Show Symbol -> Show End of Line.
Replace it to have it same.

Click on Search > Replace (or Ctrl + H)
Find what:  rn
Replace with: n
Search Mode: select Extended (n, r,...)
Replace All

answered Jul 27, 2022 at 8:26

Dalton's user avatar

DaltonDalton

3152 silver badges14 bronze badges

Whether the file is sorted or not, you can use below regex to remove duplicates in anywhere occurred in your file.

Find what: ^([^r]*[^n])(.*?)r?n1$
Replace with: 12
Search Mode:

  • Regular expression
  • Check the “. matches newline” option

Click “Replace All” as many time as possible (or press and hold Alt+A shortcut key) until you see “0 occurrences were replaced”

answered Jan 13, 2021 at 7:19

αғsнιη's user avatar

αғsнιηαғsнιη

2,6072 gold badges25 silver badges38 bronze badges

1

The plugin manager is currently unavailable (does not come with the distribution) for Notepad++. You must install it manually (https://github.com/bruderstein/nppPluginManager/releases) and even if you do, a lot of the plugins are not available anymore (no TextFX) plugin.

Maybe there is another plugin which contains the required functionality. Other than that, the only way to do it in Notepad++ is to use some special regex for matching and then replacing (Ctrl + FReplace tab).

Although there are many functionalities available via Edit menu item (trimming, removing empty lines, sorting, converting EOL) there is no “unique” operation available.

If you have Windows 10 then you can enable Bash (just type Ubuntu in Microsoft Store and follow the instructions in the description to install it) and use cat your_file.txt | sort | uniq > your_file_edited.txt. Of course you must be in the same working directory as “your_file.txt” or refer to it via its path.

Peter Mortensen's user avatar

answered Feb 23, 2018 at 14:42

Patronaut's user avatar

PatronautPatronaut

9499 silver badges14 bronze badges

Extending the top answer, you can also use a 2nd lookahead to find rows that are almost duplicates of other rows.

^(s*(<PackageReference Include=".*" Version=).*)$s+?^(?=.*^2.*$)

Here I’m after multiple references to the same <PackageReference Include=".*" string, regardless of its version.

Test data

<PackageReference Include="Package1" Version="2.2.1" />

    <PackageReference Include="Package1" Version="2.2.1" /> // Match
<PackageReference Include="Package1" Version="2.2.2" />

<PackageReference Include="Package2" Version="5.1" /> // Match
<PackageReference Include="Package2" Version="5.2" />

<PackageReference Include="Package3" Version="2.2.1" /> // No match
<PackageReference Include="Package4" Version="2.2.1" />

See a breakdown of what the regex terms mean and try with your own data on this regex101 share.

answered Mar 28, 2022 at 22:51

RJFalconer's user avatar

RJFalconerRJFalconer

10.7k5 gold badges50 silver badges65 bronze badges

Difficult to do this in NPP.
Better way is following:

Download cygwin utility, it is simple Linux terminal under windows.
It allow to execute any Linux command in Windows.
And you have sort -u there.

answered Jan 21, 2021 at 10:57

haykp's user avatar

haykphaykp

42510 silver badges29 bronze badges

1

Удаляем дубли строк в нотепад++

Убираем дубли строк

Необходимо установить плагин TextFX.

Как его установить:

Выбрать в меню “Плагины –> Plugin Manager –> Show Plugin Manager”.

После чего в открывшемся окне, на первой вкладке “Available” в списке выбираем нужный нам плагин TextFX Characters и нажимаем “Install”.

Как удалить повторяющиеся строки?:

  1. Открываем наш текстовый документ со списком;
  2. Выделяем весь текст;
  3. Переходим в меню TextFX –> TextFX Tools –> Sort lines case insensitive**

**Проверьте чтобы была отмечена опция “Sort outputs only UNIQUE lines”.

Вот так вот быстро и удобно мы удалили дублирующиеся строки в notepad++ и отсортировали список.


Помощник:

Регулярные выражения в блокноте Notepad++

Навигация


⇒ Общая ⇐

CISCO

Voice(AsteriskCisco)

Microsoft

Powershell

Python

SQLT-SQL

FreeBSD and Nix

WEB Разработка

ORACLE SQL JAVA

Мото


В notepad++ довольно просто найти и удалить дубли строк

Для этого используйте шаблон:


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий

Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

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