Vraag Dubbele rijen verwijderen in Notepad ++


Is het mogelijk om gedupliceerde rijen in Notepad ++ te verwijderen, waardoor slechts één regel voorkomt?


504
2017-10-18 10:42


oorsprong


antwoorden:


Notepad ++ kan dit, op voorwaarde dat u op regel wilt sorteren en de dubbele regels tegelijkertijd wilt verwijderen. 

U hebt de TextFX-plug-in nodig. Dit was vroeger opgenomen in oudere versies van Notepad ++, maar als je een nieuwere versie hebt, kun je deze uit het menu toevoegen door naar Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install. In sommige gevallen kan het ook worden genoemd TextFX Characters, maar dit is hetzelfde

De vereiste selectievakjes en knoppen verschijnen nu in het menu onder: TextFX -> TextFX Tools.

Zorg ervoor dat "sorteer uitgangen alleen uniek ..." is aangevinkt. Selecteer vervolgens een tekstblok (Ctrl+EEN om het volledige document te selecteren). Klik ten slotte op "lijnen hoofdlettergevoelig sorteren" of "hoofdletters ongevoelig"

menu layout in n++


707
2017-10-18 10:46



Sinds Notepad ++ versie 6 u kunt deze regex gebruiken in de dialoog Zoeken en vervangen:

^(.*?)$\s+?^(?=.*^\1$)

en vervangen door niets. Dit laat van alle dubbele rijen de laatste occurrence in het bestand achter.

Hiervoor hoeft niet gesorteerd te worden en de dubbele rijen kunnen overal in het bestand voorkomen!

U moet de opties "Reguliere expressie" en ". Overeenkomt met newline" aanvinken:

Notepad++ Replace dialogue

  • ^ komt overeen met het begin van de regel.

  • (.*?) komt overeen met 0 of meer willekeurige tekens, maar zo weinig mogelijk (het komt exact overeen op rij, dit is nodig vanwege de optie ". komt overeen met newline"). De aangepaste rij wordt opgeslagen, vanwege de haakjes rond en toegankelijk via \1 

  • $ komt overeen met het einde van de regel.

  • \s+?^ dit gedeelte komt overeen met alle witruimte karakters (nieuwe regels!) tot het begin van de volgende rij ==> Dit verwijdert de nieuwe regels na de match-rij, zodat er geen lege rij is na de vervanging.

  • (?=.*^\1$) dit is een positieve lookahead-bewering. Dit is het belangrijke deel in deze regex, een rij is alleen gematcht (en verwijderd), wanneer er precies dezelfde rij ergens anders in het bestand volgt.


478
2018-04-30 06:27



als de rijen direct achter elkaar liggen, kun je een regex-vervanging gebruiken

Zoekpatroon: ^(.*\r?\n)(\1)+

Vervangen door: \1


71
2017-10-18 10:53



Als je niet om rijvolgorde geeft (wat ik niet denk dat je doet), dan kun je een Linux / FreeBSD / MacOSX / Cygwin-box gebruiken en doen:

$ cat yourfile | sort | uniq > yourfile_nodups

Open vervolgens het bestand opnieuw in Notepad ++.


23
2017-10-18 10:46



notepad ++ 

-> Venster vervangen

Zorg ervoor dat in de zoekmodus

u hebt het keuzerondje Reguliere expressie geselecteerd

Vind wat:

^ (. *) (\ R? \ N \ 1) + $

Vervangen door:

$ 1

voor:

en we denken daar

en we denken daar

enkele lijn

is het mogelijk om

is het mogelijk om

na:

en we denken daar

enkele lijn

is het mogelijk om


21
2018-05-20 22:21



De laatste versies van Notepad ++ bevatten blijkbaar helemaal geen TextFX-plug-in. Om de plug-in te gebruiken voor het sorteren / elimineren van duplicaten, moet de plug-in worden gedownload en geïnstalleerd (meer betrokken) of worden toegevoegd met behulp van de plugin-manager.

A) Gemakkelijke manier (zoals beschreven hier).

Plug-ins -> Plugin Manager -> Show Plugin Manager -> tabblad Available -> TextFX Characters -> Install

B) Meer betrokken manier, als een andere versie nodig is of als de eenvoudige manier niet werkt.

  1. Download de plug-in van SourceForge:

    http://downloads.sourceforge.net/project/npp-plugins/TextFX/TextFX%20v0.26/TextFX.v0.26.unicode.bin.zip

  2. Open het zipbestand en pak het uit NppTextFX.dll

  3. Plaats NppTextFX.dll in de map Notepad ++ plugins, zoals:
      C: \ Program Files \ Notepad ++ \ plugins

  4. Start Notepad ++ en TextFX is een van de items in het bestandsmenu (zoals te zien in Answer # 1 hierboven van Colin Pickard)

Na het installeren van de TextFX-plug-in, volgt u de instructies in Antwoord # 1 om duplicaten te sorteren en te verwijderen.

Overweeg ook om een ​​sneltoets in te stellen via Instellingen> Shrecut-mapper als u deze opdracht vaak gebruikt of een sneltoets wilt kopiëren, zoals F9 in TextPad om te sorteren.


14
2017-11-13 16:33



Niemand werkte voor mij.

Een oplossing is:

Vervangen

^(.*)\s+(\r?\n\1\s+)+$

met

\1

Bron: http://sortedinf.com/?q=remove-duplicate-rows-in-notepad-plus-plus


4
2018-03-24 00:13



Plugin Manager is momenteel niet beschikbaar (wordt niet meegeleverd) voor Notepad ++, u moet het handmatig installeren ( https://github.com/bruderstein/nppPluginManager/releases ) en zelfs als u dat doet, zijn veel van de plug-ins niet meer beschikbaar (geen TextFX) -plug-in.

Misschien is er een andere plug-in die de vereiste functionaliteit bevat. Anders dan dat, is de enige manier om het in NotePad ++ te doen, gebruik te maken van een speciale regex voor het matchen en vervolgens vervangen (CTRL + F -> tabblad vervangen).

Hoewel er veel functionaliteiten beschikbaar zijn via Bewerk menu-item (bijsnijden, lege regels verwijderen, sorteren, EOL converteren) er is geen "unieke" bewerking beschikbaar.

Als je Windows 10 hebt, dan kan dat schakel Bash in (typ gewoon Ubuntu in Microsoft Store en volg de instructies in de Beschrijving om het te installeren) en gebruik cat your_file.txt | sort | uniq > your_file_edited.txt. Natuurlijk moet je in dezelfde werkmap staan ​​als "jouw_bestand.txt" of ernaar verwijzen via zijn pad.


1
2018-02-23 14:42



Zoeken naar de reguliere expressie: \b(\w+)\b([\w\W]*)\b\1\b

Vervang het door: $1$2

Druk op de knop Vervangen totdat er geen overeenkomsten meer zijn voor de reguliere expressie in uw bestand.


1
2018-05-22 13:05