Notepad++: как сохранить только повторяющиеся строки и удалить неповторяющиеся строки

Notepad++: как сохранить только повторяющиеся строки и удалить неповторяющиеся строки

Допустим, у меня было:

Example
Example
1
1
3

желанный:

Example
1

решение1

Предположим, что ваш файл отсортирован и завершен пустой строкой.


  • Ctrl+H
  • Найти то, что:^(.+\R)(\1)*
  • Заменить:$2
  • ГАЛОЧКА Учитывать регистр
  • ГАЛОЧКА Обернуть вокруг
  • ВЫБИРАТЬ Регулярное выражение
  • СНЯТЬ ОТМЕТКУ . matches newline
  • Replace all

Объяснение:

^           # beginning of line
    (           # group 1
        .+          # 1 or more any character but newline
        \R          # any kind of linebreak
    )           # end group 1
    (           # group 2
        \1          # backreference to group 1 (i.e. same value as captured in group 1)
    )*          # end group 2, may appear 0 or more times

Замена:

$2          # content of group 2, will be empty if there are no duplicates

Скриншот (до):

введите описание изображения здесь

Скриншот (после):

введите описание изображения здесь

решение2

Следующее решение требует, чтобы повторяющиеся строки содержались в одной последовательности в файле.

Чтобы удалить уникальные строки, я нашел пост
Найти и СОХРАНИТЬ все ДУБЛИКАТЫ строк (вместо уникальных строк) в текстовом файле.

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

В диалоговом окне «Найти и заменить» ( Ctrl+ H) выполните следующие действия:

Поиск чего:^((.*)\R(\2\R?)+)*\K.*?\n
Заменить: ничего
Режим поиска: Регулярное выражение
. соответствует новой строке: проверено

Нажмите «Заменить все», чтобы удалить уникальные строки.

Для удаления дубликатов строк см. пост Блокнот удалить повторяющиеся строки.

Связанный контент