Ответы:
Notepad ++ может сделать это, если вы хотите сортировать по строкам и одновременно удалять дублирующиеся строки.
Вам понадобится плагин TextFX. Раньше это было включено в более старые версии Notepad ++, но если у вас более новая версия, вы можете добавить ее из меню, перейдя в Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
. В некоторых случаях это тоже можно назвать TextFX Characters
, но это одно и то же
Флажки и кнопка требуются теперь появятся в меню в разделе: TextFX -> TextFX Tools
.
Убедитесь, что «сортировать выходные данные только уникальные ...» отмечен. Далее выберите блок текста ( Ctrl+, Aчтобы выделить весь документ). Наконец, нажмите «сортировать строки с учетом регистра» или «сортировать строки с учетом регистра»
Начиная с версии Notepad ++ версии 6, вы можете использовать это регулярное выражение в диалоге поиска и замены:
^(.*?)$\s+?^(?=.*^\1$)
и заменить ничем . Это оставляет из всех повторяющихся строк последнее вхождение в файл.
Для этого не требуется сортировка, и повторяющиеся строки могут находиться в любом месте файла!
Вам необходимо проверить параметры «Регулярное выражение» и «. Соответствует новой строке»:
^
соответствует началу строки.
(.*?)
соответствует любому символу 0 или более раз, но как можно меньше (это точно соответствует строке, это необходимо из-за опции ". соответствует новой строке"). Соответствующая строка сохраняется из-за квадратных скобок и доступна с помощью\1
$
соответствует концу строки.
\s+?^
эта часть сопоставляет все пробельные символы (символы новой строки!) до начала следующей строки ==> Это удаляет символы новой строки после соответствующей строки, так что после замены не остается пустой строки.
(?=.*^\1$)
это положительное прогнозное утверждение. Это важная часть в этом регулярном выражении, строка сопоставляется (и удаляется) только тогда, когда точно такая же строка следует в другом месте файла.
. matches newline
сделали свое дело .
Если строки располагаются сразу после друг друга, вы можете использовать регулярное выражение замены:
Шаблон поиска: ^(.*\r?\n)(\1)+
Заменить: \1
^(.*\r?\n)(\1)+
Notepad ++
-> Заменить окно
Убедитесь, что в режиме поиска вы выбрали переключатель « Регулярное выражение »
Найти то, что:
^ (. *) (\ Г? \ П \ 1) + $
Заменить:
$ 1
Перед:
и мы думаем там
и мы думаем там
одна линия
Это возможно
Это возможно
После:
и мы думаем там
одна линия
Это возможно
Если вам не важен порядок строк (что, я думаю, вам не нужно), вы можете использовать Linux / FreeBSD / Mac OS X / Cygwin и сделать:
$ cat yourfile | sort | uniq > yourfile_nodups
Затем снова откройте файл в Notepad ++.
'cat' is not recognized as an internal or external command, operable program or batch file.
cat yourfile | sort -Unique
Последние версии Notepad ++, по-видимому, вообще не включают плагин TextFX. Чтобы использовать плагин для сортировки / устранения дубликатов, плагин должен быть либо загружен и установлен (более задействован), либо добавлен с помощью менеджера плагинов.
А) Простой способ (как описано здесь ).
Плагины -> Диспетчер плагинов -> Показать диспетчер плагинов -> вкладка «Доступно» -> Символы TextFX -> Установить
Б) Более сложный способ, если нужна другая версия или простой способ не работает.
Загрузите плагин от SourceForge:
Откройте zip-файл и распакуйте NppTextFX.dll
Поместите NppTextFX.dll в каталог плагинов Notepad ++, например:
C: \ Program Files \ Notepad ++ \ plugins
Запустите Notepad ++, и TextFX будет одним из пунктов меню файла (как видно из ответа №1 выше Колина Пикарда)
После установки плагина TextFX следуйте инструкциям в Ответе № 1, чтобы отсортировать и удалить дубликаты.
Кроме того, рассмотрите возможность настройки сочетания клавиш с помощью « Настройки»> «Сопоставление сокращений», если вы часто используете эту команду или хотите скопировать сочетания клавиш, такие как F9 в TextPad для сортировки.
C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX
. Кроме этого это все еще работает отлично.
В версии 7.8 это можно сделать без каких-либо плагинов - «Правка» -> «Операции со строками» -> «Удалить последовательные дубликаты». Вам нужно будет отсортировать файл, чтобы поместить повторяющиеся строки в последовательном порядке, прежде чем это сработает, но это работает как шарм.
Параметры сортировки доступны в меню «Правка» -> «Операции со строками» -> «Сортировка по ...».
Вам может понадобиться плагин для этого. Вы можете попробовать командную строку cc.ddl
(удалить дубликаты строк) ConyEdit . Это кросс-редактор плагин для текстовых редакторов, в том числе Notepad ++.
Когда ConyEdit работает в фоновом режиме, выполните следующие действия:
cc.ddl
в конце текста. Поиск регулярного выражения: \b(\w+)\b([\w\W]*)\b\1\b
Замените это: $1$2
Хит заменить кнопку до тех пор, пока не останется больше матчей за регулярное выражение в файле.
Никто не работал для меня.
Решение:
замещать
^(.*)\s+(\r?\n\1\s+)+$
с
\1
^(.*)\s+(\r?\n\1\s+)+$
и нет ^(.*)\s*(\r?\n\1\s*)+$
?
Менеджер плагинов в настоящее время недоступен (не входит в дистрибутив) для Notepad ++. Вы должны установить его вручную ( https://github.com/bruderstein/nppPluginManager/releases ), и даже если вы это сделаете, многие плагины больше не будут доступны (без TextFX).
Может быть, есть другой плагин, который содержит необходимые функции. Кроме этого, единственный способ сделать это в Notepad ++ - это использовать какое-то специальное регулярное выражение для сопоставления и затем заменить ( Ctrl+ F→ Заменить вкладку).
Хотя есть много функций, доступных через пункт меню Edit (обрезка, удаление пустых строк, сортировка, преобразование EOL), «уникальная» операция недоступна.
Если у вас Windows 10, вы можете включить Bash (просто введите Ubuntu в Microsoft Store и следуйте инструкциям в описании для его установки) и используйте cat your_file.txt | sort | uniq > your_file_edited.txt
. Конечно, вы должны находиться в том же рабочем каталоге, что и «your_file.txt», или обращаться к нему по его пути.