Ist es möglich, doppelte Zeilen in Notepad ++ zu entfernen, sodass nur ein einziges Vorkommen einer Zeile übrig bleibt?
quelle
Ist es möglich, doppelte Zeilen in Notepad ++ zu entfernen, sodass nur ein einziges Vorkommen einer Zeile übrig bleibt?
Notepad ++ kann dies tun, vorausgesetzt, Sie möchten nach Zeilen sortieren und gleichzeitig die doppelten Zeilen entfernen.
Sie benötigen das TextFX-Plugin. Dies war früher in älteren Versionen von Notepad ++ enthalten. Wenn Sie jedoch eine neuere Version haben, können Sie diese über das Menü hinzufügen, indem Sie auf gehen Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
. In einigen Fällen kann es auch aufgerufen werden TextFX Characters
, aber das ist das gleiche
Die erforderlichen Kontrollkästchen und Schaltflächen werden nun im Menü unter: angezeigt TextFX -> TextFX Tools
.
Stellen Sie sicher, dass "Ausgaben nur eindeutig sortieren ..." aktiviert ist. Wählen Sie als Nächstes einen Textblock aus ( Ctrl+ A, um das gesamte Dokument auszuwählen). Klicken Sie abschließend auf "Zeilen zwischen Groß- und Kleinschreibung unterscheiden" oder "Zeilen zwischen Groß- und Kleinschreibung unterscheiden".
Seit Notepad ++ Version 6 können Sie diesen regulären Ausdruck im Such- und Ersetzungsdialog verwenden:
und durch nichts ersetzen . Dadurch bleibt aus allen doppelten Zeilen das letzte Vorkommen in der Datei.
Dafür ist keine Sortierung erforderlich und die doppelten Zeilen können sich an einer beliebigen Stelle in der Datei befinden!
Sie müssen die Optionen "Regulärer Ausdruck" und ". Entspricht Zeilenumbruch" aktivieren:
^
entspricht dem Zeilenanfang.(.*?)
stimmt mit 0 oder mehr Zeichen überein, aber so wenig wie möglich (es stimmt genau mit der Zeile überein, dies ist aufgrund der Option ". entspricht Zeilenumbruch" erforderlich). Die übereinstimmende Zeile wird aufgrund der Klammern gespeichert und ist mit zugänglich\1
$
entspricht dem Zeilenende.\s+?^
Dieser Teil stimmt mit allen Leerzeichen (Zeilenumbrüchen!) bis zum Beginn der nächsten Zeile überein. ==> Dadurch werden die Zeilenumbrüche nach der übereinstimmenden Zeile entfernt, sodass nach dem Ersetzen keine leere Zeile mehr vorhanden ist.(?=.*^\1$)
Dies ist eine positive Lookahead-Behauptung. Dies ist der wichtige Teil in diesem regulären Ausdruck. Eine Zeile wird nur dann abgeglichen (und entfernt), wenn genau dieselbe Zeile an einer anderen Stelle in der Datei folgt.quelle
. matches newline
den Trick ausgeführt.Wenn die Zeilen unmittelbar nacheinander liegen, können Sie einen regulären Ausdruck verwenden:
Suchmuster:
^(.*\r?\n)(\1)+
Ersetzen mit:
\1
quelle
^(.*\r?\n)(\1)+
Editor ++
-> Fenster ersetzen
Stellen Sie sicher , dass im Suchmodus Sie gewählt haben Regulärer Ausdruck Optionsfeld
Finde was:
Ersetzen mit:
Vor:
Nach:
quelle
Wenn Sie sich nicht für die Zeilenreihenfolge interessieren (was ich nicht glaube), können Sie eine Linux / FreeBSD / Mac OS X / Cygwin-Box verwenden und Folgendes tun:
Öffnen Sie dann die Datei erneut in Notepad ++.
quelle
'cat' is not recognized as an internal or external command, operable program or batch file.
cat yourfile | sort -Unique
Die letzteren Versionen von Notepad ++ enthalten anscheinend überhaupt nicht das TextFX-Plugin. Um das Plugin zum Sortieren / Entfernen von Duplikaten zu verwenden, muss das Plugin entweder heruntergeladen und installiert werden (mehr Aufwand) oder über den Plugin-Manager hinzugefügt werden.
A) Einfacher Weg (wie hier beschrieben ).
Plugins -> Plugin Manager -> Plugin Manager anzeigen -> Registerkarte Verfügbar -> TextFX-Zeichen -> Installieren
B) Aufwändigerer Weg, wenn eine andere Version benötigt wird oder der einfache Weg nicht funktioniert.
Laden Sie das Plugin von SourceForge herunter:
http://downloads.sourceforge.net/project/npp-plugins/TextFX/TextFX%20v0.26/TextFX.v0.26.unicode.bin.zip
Öffnen Sie die Zip-Datei und extrahieren Sie NppTextFX.dll
Platzieren Sie NppTextFX.dll im Verzeichnis der Notepad ++ - Plugins, z.
B.: C: \ Programme \ Notepad ++ \ plugins
Starten Sie Notepad ++, und TextFX wird eines der Menüelemente der Datei sein (wie in Antwort 1 oben von Colin Pickard gezeigt).
Befolgen Sie nach der Installation des TextFX-Plugins die Anweisungen in Antwort 1, um Duplikate zu sortieren und zu entfernen.
Wenn Sie diesen Befehl häufig verwenden oder eine Tastenkombination wie F9 in TextPad zum Sortieren replizieren möchten, können Sie auch eine Tastenkombination über Einstellungen> Shorcut-Mapper einrichten .
quelle
C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX
. Davon abgesehen funktioniert dies immer noch gut.In Version 7.8 können Sie dies ohne Plugins erreichen - Bearbeiten -> Linienoperationen -> Aufeinanderfolgende doppelte Linien entfernen. Sie müssen die Datei sortieren, um doppelte Zeilen in aufeinanderfolgender Reihenfolge zu platzieren, bevor dies funktioniert, aber es funktioniert wie ein Zauber.
Sortieroptionen finden Sie unter Bearbeiten -> Linienoperationen -> Sortieren nach ...
quelle
Möglicherweise benötigen Sie dazu ein Plugin. Sie können die Befehlszeile
cc.ddl
(doppelte Zeilen löschen) von ConyEdit ausprobieren . Es ist ein Editor-Cross-Plugin für die Texteditoren, einschließlich Notepad ++.Führen Sie die folgenden Schritte aus, während ConyEdit im Hintergrund ausgeführt wird:
cc.ddl
am Ende des Textes ein.Beispiel
quelle
Suchen Sie nach dem regulären Ausdruck:
\b(\w+)\b([\w\W]*)\b\1\b
Ersetzen Sie es durch:
$1$2
Klicken Sie auf die Schaltfläche Ersetzen , bis der reguläre Ausdruck in Ihrer Datei keine Übereinstimmungen mehr enthält.
quelle
Keiner hat für mich gearbeitet.
Eine Lösung ist:
Ersetzen
mit
quelle
^(.*)\s+(\r?\n\1\s+)+$
nicht^(.*)\s*(\r?\n\1\s*)+$
?Der Plugin-Manager ist derzeit für Notepad ++ nicht verfügbar (wird nicht mit der Distribution geliefert). Sie müssen es manuell installieren ( https://github.com/bruderstein/nppPluginManager/releases ) und selbst wenn Sie dies tun, sind viele Plugins nicht mehr verfügbar (kein TextFX).
Möglicherweise gibt es ein anderes Plugin, das die erforderliche Funktionalität enthält. Abgesehen davon besteht die einzige Möglichkeit, dies in Notepad ++ zu tun, darin, einen speziellen regulären Ausdruck zum Abgleichen und anschließenden Ersetzen zu verwenden ( Ctrl+ F→ Registerkarte Ersetzen ).
Obwohl über den Menüpunkt Bearbeiten (Trimmen, Entfernen leerer Zeilen, Sortieren, Konvertieren von EOL) viele Funktionen verfügbar sind, ist keine "eindeutige" Operation verfügbar.
Wenn Sie Windows 10 haben, können Sie Bash aktivieren (geben Sie einfach Ubuntu im Microsoft Store ein und befolgen Sie die Anweisungen in der Beschreibung, um es zu installieren) und verwenden
cat your_file.txt | sort | uniq > your_file_edited.txt
. Natürlich müssen Sie sich im selben Arbeitsverzeichnis wie "your_file.txt" befinden oder über dessen Pfad darauf verweisen.quelle