Leerzeilen in Notepad ++ entfernen


384

Wie kann ich leere Zeilen in Notepad ++ ersetzen? Ich habe versucht zu suchen und durch die leeren Zeilen im Fund und nichts im Ersetzen zu ersetzen, aber es hat nicht funktioniert. Es braucht wahrscheinlich Regex.

Antworten:


395

Sie brauchen so etwas wie einen regulären Ausdruck.

Sie müssen im ExtendedModus sein

Wenn Sie möchten, dass alle Zeilen in einer einzigen Zeile enden, verwenden Sie \r\n. Wenn Sie einfach leere Zeilen entfernen möchten , verwenden Sie \n\rwie ursprünglich vorgeschlagen @Link.

Ersetzen Sie einen der Ausdrücke durch nichts.


21
Sollte zuerst im Suchmodus "Erweitert" auswählen.
q0987

14
Damit Ihre Linien nicht zusammengefügt werden, müssen Sie suchen \r\n\r\nund durch ersetzen \r\n.
Robert Kaucher

1
Siehe den Kommentar von @ BoltClock unten. Wenn Ihre Datei mit Unix-Zeilenenden gespeichert wird, können Sie sie vor dem Suchen und Ersetzen unter Bearbeiten> EOL-Konvertierung> Windows-Format in Windows-Zeilenenden konvertieren.
Big McLargeHuge

9
Wenn Sie Zeilen mit nur Leerzeichen und Tabulatoren oder nichts entfernen möchten, versuchen Sie, Regex \r\n\W*\r\n\r\n
Replace zu verwenden,

2
@ ST3 hmm was habe ich gedacht, dieses ist viel besser: (\r\n|\r|\n)(\s*(\r\n|\r|\n))+und ersetzen \r\nSie es hier in Aktion zu sehen: regex101.com/r/qD9dB1/1
Myster

567

Ab Version 6.5.2 gibt es jetzt eine integrierte Möglichkeit, dies zu tun

Edit -> Line Operations -> Remove Empty Lines oder Remove Empty Lines (Containing Blank characters)

Screenshot zum Entfernen von Leerzeilen


Leider berücksichtigt dies nicht Ihre Auswahl, sondern löscht alle leeren Zeilen in der Datei, auch wenn Sie nur einige davon ausgewählt haben.
Fabio sagt Reinstate Monica

Wenn es sich um eine einmalige Operation handelt, können Sie die ausgewählten Zeilen auf die neue Registerkarte Notepad ++ extrahieren und dort ausführen. Kopieren-Einfügen für 5 Sekunden. Jede andere Problemumgehung, die in dieser Zeit nicht erreicht werden kann, ist meiner Meinung nach eine Verschwendung. Aber wenn Sie das jeden Tag 100 Mal tun ...
Glaubensbekenntnis

Ich habe dies verwendet (sogar meine Verknüpfung zugewiesen), aber es ist viel langsamer als die obige Option, also verwenden Sie es intelligent ...
Betlista

122

Es gibt ein Plugin, das ein Menü mit dem Titel hinzufügt TextFX. Dieses Menü, das eine schwindelerregende Auswahl an schnellen Textbearbeitungsoptionen enthält, bietet einer Person die Möglichkeit, schnelle Codierungsänderungen vorzunehmen. In diesem Menü finden Sie Auswahlmöglichkeiten wie Anführungszeichen löschen, Leerzeilen löschen sowie Text entpacken und neu umbrechen

Mach Folgendes:

TextFX > TextFX Edit > Delete Blank Lines
TextFX > TextFX Edit > Delete Surplus Blank Lines

7
Ich bin mir nicht sicher, wann, aber es scheint, dass dieses Plugin jetzt standardmäßig installiert ist. Etwas abseits des Themas, aber eine der anderen unglaublich nützlichen Funktionen TextFX > TextFX Toolsist die Zeilensortierung, bei der optional Duplikate entfernt werden. Sehr praktische Möglichkeit, ein Unix sort -uauf einer Windows-Box ohne Cygwin oder Unxutils oder ähnliches auszuführen.
Cam Jackson

3
Hier ist ein Link zum TextFx Plugin. Ich fand es sehr nützlich. Verwenden Sie: Settings > Import > plugin...und suchen Sie die DLL-Datei, um sie zu installieren. Es wird ein Menüpunkt vonPlugins
Nicholas Pickering

1
Funktioniert dies für alle offenen Dokumente oder für jeweils ein Dokument?
Verfallen

76
  1. Notizblock ++
  2. Strg-H
  3. Wählen Sie Regulärer Ausdruck
  4. Geben Sie ^[ \t]*$\r?\nin find what ein, lassen Sie replace leer. Dies entspricht allen Zeilen, die mit Leerzeichen beginnen und mit Wagenrücklauf enden (in diesem Fall ein Windows-CRLF).
  5. Klicken Sie auf die Schaltfläche Weiter suchen, um selbst zu sehen, wie nur leere Zeilen übereinstimmen.

1
Ich musste diese Methode anstelle einiger anderer Methoden verwenden, damit sie problemlos in einem Makro funktioniert. Vielen Dank.
Mafu Josh

5
Noch kürzere und auch weniger benötigte Ersetzungen aufgrund mehrerer leerer Zeilen werden sofort ersetzt: ^ \ s * $ \ r? \ n
njank

30
  1. Drücken Sie Strg + h (Abkürzung für ersetzen).
  2. In dem findet , was Zone Typ ^\R(genaue Leerzeilen) oder ^\h*\R(für Leerzeilen mit Leerzeichen, nur).
  3. Lassen Sie die Zone Ersetzen durch leer .
  4. Überprüfen Sie die Umhüllung Option .
  5. Wählen Sie den regulären Ausdruck Suchmodus für .
  6. Klicken Sie auf die Schaltfläche Alle ersetzen .

Geben Sie hier die Bildbeschreibung ein


1
Dies funktionierte bei mir ohne Probleme oder zusätzliche Einstellungen zu ändern. Vielen Dank!
Bonez024

19

Sie können der im folgenden Screenshot gezeigten Technik folgen:

  • Finde was: ^\r\n
  • Ersetzen mit: keep this empty
  • Suchmodus: Regular expression
  • Wrap around: ausgewählt

Geben Sie hier die Bildbeschreibung ein

HINWEIS: Für * nix-Dateien suchen Sie einfach nach\n


17

Das hat bei mir funktioniert:

  1. Drücken Sie ctrl + h(Verknüpfung zum Ersetzen)
  2. Schreiben Sie einen der folgenden regulären Ausdrücke in das find whatFeld. [\n\r]+$oder^[\n\r]+
  3. Lassen Sie das Replace withFeld leer
  4. In Search ModeWählenRegex
  5. Klicken Sie auf Replace All

    Fertig!

Dies ist die einzige Lösung, die meine riesigen CSV-Dateien nicht vermasselt hat. Vielen Dank!
veuncent

1
plus eins, weil ich endlich die Abkürzung zum Ersetzen kenne :-D
Betlista

14

Drücken Sie im Editor ++ STRG + H, klicken Sie im Suchmodus auf das Optionsfeld "Erweitert (\ n, \ r, \ t ...)" und geben Sie das Feld "Suchen nach" ein: \ r \ n (kurz für CR LF) ) und lassen Sie das Feld "Ersetzen durch" leer.

Schließlich klicken Sie auf Alle ersetzen


Eigentlich habe ich es versucht, siehe meine Klarstellung in meiner Antwort. Du warst auf etwas!
Brad

3
Dies setzt jedoch voraus, dass die Zeilenenden Windows (CRLF) sind, wenn Ihre Datei mit Unix gespeichert wird. Suchen Sie nur nach \n.
BoltClock

@Brad: Ich habe zwischen () "kurz für CR LF" geschrieben und wollte nicht, dass Codetrek glaubt, \ n sei CR, daher die Bearbeitung.
Bassem

Falsche Antwort, setzt alle Zeilen in eine Zeile.
m0skit0

12

Nun, ich bin mir nicht sicher über den regulären Ausdruck oder deine Situation.

Wie wäre es mit STRG + A, wählen Sie das TextFX-Menü -> TextFX-Bearbeiten -> Leere Zeilen löschen und Viola alle leeren Zeilen weg.

Eine Randnotiz - wenn die Zeile leer ist, dh keine Leerzeichen enthält, funktioniert dies


12

Sie können nach dem folgenden regulären Ausdruck suchen: ^(?:[\t ]*(?:\r?\n|\r))+und ihn durch ein leeres Feld ersetzen


11

Strg + H.

find - \ r \ r durch - \ r ersetzen.


Dies funktioniert bei mir, indem ich zusätzliche Zeilen entferne, indem ich finde, dass double \ r durch single \ r ersetzt wird. Vielen Dank!!
Genpet

Dies funktionierte gut, aber ich stellte fest, dass ich es mehrmals in meinem Dokument ausführen musste, bevor alle Instanzen von \ r \ r verschwunden waren. Ich bin mir nicht sicher warum.
Hawkwing

7

Dies funktioniert offensichtlich nicht, wenn die Leerzeilen Tabulatoren oder Leerzeichen enthalten. Viele Webseiten (z. B. http://www.guardian.co.uk/ ) enthalten diese weißen Linien aufgrund eines fehlerhaften HTML-Editors.

Entfernen Sie Leerzeichen mit regulären Ausdrücken wie folgt:

Muster ändern: [\ t] + $ in nichts.

Dabei entspricht [\ t] entweder der Registerkarte oder dem Leerzeichen. '+' entspricht einem oder mehreren Vorkommen, und '$' markiert das Zeilenende.

Verwenden Sie dann Notepad ++ / textFX, um einzelne oder zusätzliche Leerzeilen zu entfernen. Stellen Sie sicher, dass diese Leerzeilen im angegebenen Kontext nicht von Bedeutung sind.


5

Geben Sie hier die Bildbeschreibung ein

Manchmal funktioniert \ n \ r usw. nicht, um herauszufinden, wie Ihr regulärer Ausdruck aussehen sollte.

Vorteil dieses Tricks: Wenn Sie mehrere Dateien gleichzeitig ersetzen möchten, müssen Sie diese Methode benötigen. Oben wird nicht funktionieren ...


5

1) Ctrl + H(Oder Search 🠆 Replace..) um das Fenster Ersetzen zu öffnen.

2) Wählen Sie 'Search Mode' "Regulärer Ausdruck".

3) In ‚Suchen nach ‘ Art ^(\s*)(.*)(\s*)$& in ‚Ersetzen durch‘ Typen\2

  • ^ - Entspricht dem Zeilenanfang
  • (\s*) - Entspricht Leerzeichen
  • (.*) - Entspricht allen Zeichen
  • (\s*) - Entspricht Leerzeichen
  • $ - Entspricht dem Zeilenendezeichen
  • \2 - Bezeichnet den passenden Contend der 2. Klammer

Geben Sie hier die Bildbeschreibung einWeitere Informationen zu Regex finden Sie unter https://www.rexegg.com/regex-quickstart.html .


4
  1. Bearbeiten >> Leere Operationen >> Führende und nachfolgende Leerzeichen kürzen (um schwarze Tabulatoren und Leerzeichen in leeren Zeilen zu entfernen)
  2. Ctrl+ Hum das Ersetzungsfenster zu erhalten und das Muster zu ersetzen: ^\r\nmit nichts (regulären Ausdruck auswählen)

Hinweis: In Schritt 1 wird Ihre Code-Absicht entfernt, die über Tabulatoren und Leerzeichen erfolgt


4

STRG + A, Wählen Sie das TextFX-Menü -> TextFX-Bearbeitung -> Leere Zeilen löschen, wie oben vorgeschlagen.

Wenn Zeilen jedoch etwas Leerzeichen enthalten, bewegen Sie den Cursor auf diese Zeile und drücken Sie STRG + H. Im Abschnitt "Suchen nach:" wird das Leerzeichen angezeigt. Lassen Sie es im Abschnitt "Ersetzen durch" leer. Jetzt werden alle Leerzeichen entfernt und versuchen Sie STRG + A. Wählen Sie das TextFX-Menü -> TextFX-Bearbeitung -> Leere Zeilen löschen


4

/n/rnimmt eine bestimmte Art von Zeilenumbruch an. Um auf eine leere Zeile zu zielen, können Sie auch Folgendes verwenden:

^$

Dies sagt - jede Zeile, die mit nichts dazwischen beginnt und dann endet. Dies ist eher ein Allheilmittel. Durch dieselbe leere Zeichenfolge ersetzen.


3

Ich habe die kombinierte nicht als Antwort gesehen, also suche nach ^ \ s + $ und ersetze sie durch {nichts}

^\s+$ means
  ^ start of line
  \s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
  $ until end of line

Wenn Sie mehrere Zeilen möchten, können Sie versuchen: ^\s+^(\S)und durch ersetzen \1.
Jiggunjer


1

Eine einfache Alternative zum Entfernen von Leerzeichen aus leeren Zeilen:

  1. TextFX> TextFX-Bearbeitung> Nachgestellte Leerzeichen kürzen

Dadurch werden alle nachgestellten Leerzeichen entfernt, einschließlich nachfolgender Leerzeichen in Leerzeilen. Stellen Sie sicher, dass keine nachgestellten Leerzeichen von Bedeutung sind.


0

Einige der oben genannten Ausdrücke und erweiterten Ausdrücke haben bei mir nicht funktioniert, der reguläre Ausdruck "$ \ n $" jedoch.


0

diese Arbeit für mich:

SEARCH:^\r  
REPLACE:            (empty)

1
Dies wird nicht funktionieren für Linux EOL \nund Windows EOL\r\n
Toto
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.