
🗑 Kuidas eemaldada Notepad++-is topeltridu: 3 meetodit
Korduvad read logides, CSV-eksportides ja seadistusfailides: peavalu, mis on tuttav kõigile, kes on kunagi käsitsi parsinud 500-megabaidist andmebaasitõmmist. Avad faili ja pooled read on kordused. Nende käsitsi kustutamine on tuhandete ridade puhul lootusetu ettevõtmine.
Notepad++ lahendab selle sekunditega. Redaktor pakub kolme meetodit: alates sisseehitatud funktsioonist, mis nõuab kahte klõpsu, kuni regulaaravaldisteni keerukamate stsenaariumide jaoks. Vali see, mis sinu ülesandele sobib.
💡 Kiirülevaade:
- Meetod 1, sisseehitatud funktsioon: Edit → Line Operations → Remove Duplicate Lines. Kaks klõpsu, töötab versiooniga 7.6+, 64-bitine.
- Meetod 2, regulaaravaldis: eemaldab duplikaadid sorteerimata, säilitades ridade järjekorra. Väga hästi kohandatav.
- Meetod 3, TextFX plugin: klassikaline, kuid ainult 32-bitise versiooni jaoks. 64-bitise jaoks on olemas haru nimega TextFX2.
Meetod 1: Notepad++ sisseehitatud funktsioon
Lihtsaim ja kiireim meetod. See ilmus versioonis 7.6 ja töötab kõigis kaasaegsetes järgudes, sealhulgas praeguses v8.9.6. Pluginaid pole vaja, kõik töötab kohe karbist võttes.
Ava fail Notepad++-s, vali kogu sisu (Ctrl + A) ja mine Edit → Line Operations → Remove Duplicate Lines. Valmis, kõik korduvad read on eemaldatud, alles jäävad ainult unikaalsed.
Olemas on ka Remove Consecutive Duplicate Lines, mis eemaldab ainult järjestikku esinevad duplikaadid, puudutamata identseid ridu mujal failis. Kasulik logide puhastamiseks, kus kordused kogunevad plokkidena.
Märkus: funktsioon eemaldab KÕIK duplikaadid, jättes alles ainult iga rea esimese esinemise. Kui sinu fail sisaldab tähenduslikke kordusi (näiteks identsed sulgevad sulud JSON-is või XML-is), siis see meetod ei sobi. Sel juhul vaata meetodit 2 regex'iga.
Meetod 2: otsi ja asenda regulaaravaldisega
Regulaaravaldis annab sulle täieliku kontrolli. Erinevalt sisseehitatud funktsioonist võimaldab see duplikaate eemaldada ilma eelneva sorteerimiseta: read jäävad oma algsesse järjekorda, samal ajal kui kordused kaovad.
Ava otsingudialoog (Ctrl + H), lülitu Replace vahekaardile ja täida väljad:
Väli | Väärtus |
|---|---|
Find what |
|
Replace with | (jäta tühjaks) |
Search Mode | Regular expression |
. matches newline | Märkeruut tühjaks |
Klõpsa Replace All. Notepad++ käib läbi kogu faili, leiab read, mis korduvad kusagil edaspidi, ja kustutab need. Tulemusena jääb igast duplikaatide komplektist alles ainult viimane esinemine.
Kuidas see töötab: ^(.*?)$ püüab rea esimesse gruppi, \s+? hüppab üle tühikute ridade vahel ja (?=.*^\1$) on positiivne ettevaade, mis kontrollib, kas see sama rida (\1) esineb failis hiljem. Kui esineb, siis praegune esinemine kustutatakse.
Regex'i eelis on see, et saad mustrit kohandada. Näiteks lisa ^ püüdmise algusesse, kui vajad täpset vastet rea algusest, või asenda \s+? väärtusega \r?\n, et ankurdada rangelt reavahetustele.
Meetod 3: TextFX plugin
Klassikaline meetod, mis on olnud kasutusel aastaid. TextFX oli standardplugin vanemates 32-bitistes Notepad++ järgudes. Olukord on muutunud: originaalne TextFX ei ühildu 64-bitise versiooniga alates v8.4 ja on standardjaotusest eemaldatud.
Kui kasutad 32-bitist Notepad++, paigalda plugin läbi Plugins → Plugin Manager → Show Plugin Manager → Available → TextFX → Install. Pärast paigaldamist ilmub menüüsse TextFX → TextFX Tools sektsioon.

Veendu, et Sort lines case sensitive märkeruut on valitud (või tõstutundetu, sinu valik). Vali tekst (Ctrl + A) ja klõpsa Sort lines case sensitive. Plugin sordib read, asetades duplikaadid üksteise kõrvale. Pärast seda eemaldab Edit → Line Operations → Remove Consecutive Duplicate Lines kordused.
64-bitise versiooni jaoks on olemas kaasaegne haru nimega TextFX2. See on saadaval GitHub-is (rainman74/NPPTextFX2) ja paigaldatakse käsitsi: laadi alla DLL, aseta see Notepad++ kataloogis kausta plugins\NPPTextFX2 ja taaskäivita redaktor. Funktsionaalsus on sama: sorteerimine, duplikaatide eemaldamine, tõstumuutmine.
Kui ülesanne on ühekordne ja sa ei soovi pluginat paigaldada, on meetodist 1 enam kui küll.
⁉️🤔 Korduma kippuvad küsimused
Miks Notepad++ ei eemalda kõiki duplikaate?
Tõenäoliselt ei ole read baitide tasemel identsed. Kontrolli nähtamatuid märke: lõpus olevad tühikud, tabulaatorid tühikute asemel, erinev tõst. Lülita sisse View → Show Symbol → Show All Characters, et näha, mis muudab read erinevaks.
Kuidas eemaldada duplikaate ILMA tõstutundlikkuseta?
Sisseehitatud Remove Duplicate Lines on tõstutundlik: "WordPress" ja "wordpress" on erinevad read. Duplikaatide eemaldamiseks tõstutundetult teisenda tekst esmalt ühte tõstu läbi Edit → Convert Case to → Lowercase (või Uppercase) ja seejärel käivita Remove Duplicate Lines. Alternatiivina kasuta meetodit 2 regex'i lipuga
(?i)mustri alguses.
Kas ma saan eemaldada duplikaate mitmest failist korraga?
Notepad++ ei toeta mitme faili otsingut ja asendamist regex'iga läbi oma standardliidese. Küll aga saad kasutada Find in Files (Ctrl + Shift + F), et leida ridu regex'i järgi kõigist kaustas olevatest failidest. Partiiviisiliseks asendamiseks mitmes failis on mugavam Pythoni või PowerShelli skript: loe fail, rakenda regex, kirjuta üle. Alternatiivina kasuta Notepad++ Python Script pluginat koos kohandatud skriptiga.
Mis on suure faili puhul kiirem, sisseehitatud funktsioon või regex?
Sisseehitatud Remove Duplicate Lines on üle 50 MB failide puhul märgatavalt kiirem, kuna see on natiivne C++ kood, mitte regulaaravaldiste mootor. Regex'i meetod hakkab sadade tuhandete ridade puhul ettevaadete kontrollide tõttu oluliselt aeglustuma. Võrdluseks: 200 000 reaga CSV-faili puhul lõpetab sisseehitatud funktsioon 2-3 sekundiga, samas kui regex võtab 15-20 sekundit.
Eemaldasin duplikaadid; kuidas tagasi võtta, kui läks valesti?
Ctrl + Z võtab viimase toimingu tagasi. Kui sulgesid faili salvestamata, siis lihtsalt ära salvesta muudatusi väljumisel. Igal juhul tee enne suuremahulisi muudatusi originaalfailist koopia kõrvalkausta: võtab sekundi, säästab tunde.
Milline meetod oma ülesande jaoks valida
Kui sul on vaja kiiresti logisid või CSV-sid kordustest puhastada, kasuta sisseehitatud funktsiooni (meetod 1). Kaks klõpsu, kohene tulemus, pluginaid pole vaja. See on vaikimisi valik valdavale enamusele stsenaariumidest. Tulemus on kohe nähtav ilma täiendavate sammudeta.
Regex (meetod 2) on juhuks, kui ridade algne järjekord on oluline või vajad peenhäälestust: duplikaatide eemaldamine ainult valitud fragmendist, tõstu ignoreerimine, pesastunud korduste käsitlemine. Võimsam, kuid nõuab süntaksi mõistmist.
TextFX (meetod 3) on ainult siis, kui oled 32-bitise versiooni peal ja oled selle töövooga harjunud. 64-bitise jaoks on TextFX2, kuid kuna sisseehitatud funktsioon on nüüd saadaval, on plugin peaaegu aegunud.
Proovi sisseehitatud funktsiooni kohe mõne kordustega tekstifaili peal. See võtab 5 sekundit.



