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.

Nomoreflash
quelle

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.

Brad
quelle
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

Halfwarr
quelle
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
kolufild
quelle
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.
SleepyBoBos
quelle
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

Alex.K.
quelle
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

Saikat
quelle
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!
Kamal Nayan
quelle
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

Bassem
quelle
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

Ahmad
quelle
12

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

Ya Basha
quelle
11

Strg + H.

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

Mahesh Adepu
quelle
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.

Poisson
quelle
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 ...

Wasim A.
quelle
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 .

Praboda
quelle
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

Adeeb
quelle
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


quelle
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.

AshBrad
quelle
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
user2056154
quelle
Wenn Sie mehrere Zeilen möchten, können Sie versuchen: ^\s+^(\S)und durch ersetzen \1.
Jiggunjer
2

Es ist sehr einfach

Strg + H.

Suchen: \ r \ n \ r \ n

Replizieren Sie mit: \ r \ n

Siehe Fang

Pragnesh Bhalodiya
quelle
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.

Poisson
quelle
0

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

Chris
quelle
0

diese Arbeit für mich:

SEARCH:^\r  
REPLACE:            (empty)
Rafael Marques
quelle
1
Dies wird nicht funktionieren für Linux EOL \nund Windows EOL\r\n
Toto