Este posibil pentru a elimina duplicat rânduri în Notepad++, lăsând doar un singur eveniment de o linie?
Notepad++ poate face acest lucru, cu condiția să ai vrut la fel de linie, și elimina duplicat linii în același timp.
Veți avea nevoie de TextFX plugin. Acest lucru utilizate pentru a fi incluse în versiunile mai vechi de Notepad++, dar dacă aveți o versiune mai nouă, puteți adăuga la meniul de gând să Plugin-uri -> Plugin Manager -> Arată Plugin Manager -> Disponibil tab -> TextFX -> Instalare
. În unele cazuri, aceasta poate fi, de asemenea, numit `TextFX Personajelor, dar acest lucru este același lucru
Casetele de validare și butoane necesar va apărea acum în meniul de sub: TextFX -> TextFX Tools
.
Asigurați-vă că "un fel doar iesiri unic..." este verificat. Apoi, selectați un bloc de text (Ctrl+A pentru a selecta întregul document). În cele din urmă, faceți clic pe "linii de sortare case sensitive" sau "linii de sortare caz insensibil"
Începând cu Notepad++ Versiunea 6 puteți utiliza această regex în căutare și înlocuiți-dialogue:
^(.*?)$\s+?^(?=.*^\1$)
și înlocui cu nimic. Acest lucru lasă la toate rândurilor duplicate ultima apariție în dosar.
Nu de sortare este necesar pentru că și rândurile duplicat poate fi oriunde în fișier!
Aveți nevoie pentru a verifica opțiuni "expresie Regulată" și ". meciuri newline":
^
meciuri la început de rând.
(.*?)
se potrivește cu orice caractere 0 sau mai multe ori, dar cât mai puține posibil (Se potriveste exact pe rând, acest lucru este necesar din cauza ". meciuri newline" opțiune). Potrivit rând este stocat, pentru că de paranteze în jurul și accesibile folosind \1
$
meciuri la capăt de linie.
\s+?^
această parte meciuri în toate spațiile albe de caractere (newline!) până la începutul rândului următor ==> astfel, se elimină liniile după matchd rând, astfel încât nici un rând liber este acolo după înlocuire.
(?=.*^\1$)
acesta este un rezultat pozitiv posibilitate de afirmare. Acest lucru este important în acest regex, un rând este egalată doar (și eliminate), atunci când nu este exact același rând următoarele altă parte în dosar.
Dacă rândurile sunt imediat după fiecare alte atunci puteți folosi un regex replace:
Model De Căutare: ^(.*\r?\n)(\1)+
Înlocuiți cu: \1
Notepad++
-> Înlocuiți fereastra
A se asigura că în modul de Căutare ați selectat expresii Regulate buton radio
Găsiți ceea ce:
^(.*)(\r?\n\1)+$
Înlocuiți cu:
$1
Înainte de a:
și noi credem că nu
și noi credem că nu
singură linie
Este posibil să
Este posibil să
După:
și noi credem că nu
singură linie
Este posibil să
Dacă tu nu't grijă despre rând ordine (pe care nu-l't cred că ai face), atunci poti folosi un Linux/FreeBSD/Mac sistem de OPERARE X/Cygwin cutie și de a face:
$ cat yourfile | sort | uniq > yourfile_nodups
Apoi deschideți din nou fișierul în Notepad++.
Ultimele versiuni de Notepad++ nu se pare că includ TextFX plugin-ul la toate. În scopul de a utiliza plugin-ul pentru sortarea/eliminarea duplicatelor, plugin-ul trebuie să fie descărcat și instalat (mai implicat) sau adăugate folosind managerul de plugin-uri.
A) Ușor (așa cum este descris aici).
Plugin-uri -> Plugin Manager -> Arată Plugin Manager -> Disponibil tab -> TextFX Personaje -> Instalare
B) Mai implicat fel, dacă o altă versiune este necesar sau cea mai ușoară cale nu funcționează.
Deschideți fișierul zip și extrage NppTextFX.dll
Loc NppTextFX.dll în Notepad++ directorul de plugin-uri, cum ar fi:
C:\Program Files\Notepad++\plugins
Începe Notepad++, și TextFX va fi una dintre file elemente de meniu (cum se vede în Răspunsul #1 de mai sus de către Colin Pickard)
După instalarea TextFX plugin-ul, urmați instrucțiunile din Raspunsul #1 la fel și elimina duplicate.
De asemenea, luați în considerare crearea unei comenzi rapide tastatură folosind Setări > Shorcut mapper dacă utilizați această comandă frecvent sau vrei să reproducă o comandă rapidă de la tastatură, cum ar fi F9 în TextPad pentru sortare.
Ai nevoie de un plugin pentru a face acest lucru. Puteți încerca linia de comandă cc.ddl
(șterge linii duplicate) din ConyEdit. Este un cross-editor plugin pentru editoare de text, inclusiv Notepad++.
Cu ConyEdit rulează în fundal, urmați pașii de mai jos:
Căutare pentru expresia regulată: \b(\w+)\b([\w\W]*)\b\1\b
Înlocuiți-l cu: $1$2
A lovit Înlocuiți butonul până când nu mai există meciuri pentru expresia regulată din fișier.
Nici unul nu a lucrat pentru mine.
O soluție este:
Înlocuiți
^(.*)\s+(\r?\n\1\s+)+$
cu
\1
Managerul de plugin-uri este disponibilă în prezent (cu distribuție) pentru Notepad++. Trebuie să-l instalați manual (https://github.com/bruderstein/nppPluginManager/releases) și chiar dacă ai face, o mulțime de plugin-uri nu sunt disponibile (nu TextFX) plugin.
Poate că există un alt plugin care conține funcționalitatea necesară. Altele decât că, singura modalitate de a face in Notepad++ este de a utiliza unele speciale regex pentru potrivire și apoi înlocuirea (Ctrl + F → Înlocuiți tab).
Deși există multe funcționalități disponibile prin intermediul Edit element de meniu (tăiere, scoaterea linii goale, de sortare, de conversie EOL) nu există nici o "unic" operare disponibile.
Dacă aveți Windows 10, atunci puteți permite Bash (doar de tip Ubuntu în Microsoft Store și urmați instrucțiunile din descriere să-l instalați) și de a folosi pisica your_file.txt | sort | uniq > your_file_edited.txt
. Desigur, trebuie să fie în același director ca "your_file.txt" sau se referă la ea prin calea sa.
În versiunea 7.8, puteți realiza acest lucru fără nici un plugin - uri- Editare> Operațiuni de Linie -> Scoateți Consecutive Linii Duplicate. Veți avea pentru a sorta fișiere pentru a plasa linii duplicate în ordine consecutivă, înainte de acest lucru funcționează, dar funcționează ca un farmec.