Відповіді:
Блокнот ++ може це зробити за умови, що ви хочете сортувати за рядком і одночасно видаляти повторювані рядки.
Вам знадобиться плагін 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)+
Блокнот ++
-> Замініть вікно
Переконайтесь, що в режимі пошуку ви вибрали перемикач Регулярне вираження
Знайти що:
^ (. *) (\ r? \ n \ 1) + $
Замінити:
$ 1
Перед:
і ми думаємо там
і ми думаємо там
один рядок
Чи можна
Чи можна
Після:
і ми думаємо там
один рядок
Чи можна
Якщо ви не переймаєтесь порядком рядків (що, на мою думку, ви не робите), ви можете скористатися вікном Linux / FreeBSD / Mac OS X / Cygwin і виконати:
$ cat yourfile | sort | uniq > yourfile_nodups
Потім знову відкрийте файл у Блокноті ++.
'cat' is not recognized as an internal or external command, operable program or batch file.
cat yourfile | sort -Unique
Останні версії Notepad ++, мабуть, зовсім не включають плагін TextFX. Щоб використовувати плагін для сортування / усунення дублікатів, плагін потрібно або завантажити, і встановити (більше задіяти), або додати за допомогою диспетчера плагінів.
A) Простий спосіб (як описано тут ).
Плагіни -> Диспетчер плагінів -> Показати Менеджер плагінів -> Вкладка "Доступні" -> Символи TextFX -> Встановити
Б) Більш задіяний спосіб, якщо потрібна інша версія або простий спосіб не працює.
Завантажте плагін з SourceForge:
Відкрийте поштовий файл і витягніть NppTextFX.dll
Розмістіть NppTextFX.dll в каталозі плагінів Notepad ++, таких як:
C: \ Program Files \ Notepad ++ \ plugins
Запустіть Блокнот ++, і 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→ закладка Замінити ).
Хоча за допомогою пункту меню « Правка » доступно багато функцій (обрізка, видалення порожніх рядків, сортування, перетворення EOL), немає «унікальної» операції.
Якщо у вас Windows 10, ви можете увімкнути Bash (просто введіть Ubuntu в Microsoft Store і дотримуйтесь інструкцій, описаних в описі, щоб встановити її) та використовувати cat your_file.txt | sort | uniq > your_file_edited.txt
. Звичайно, ви повинні знаходитись у тому ж робочому каталозі, що і "your_file.txt", або посилатися на нього через його шлях.