web-dev-qa-db-de.com

Finden Sie CRLF in Notepad ++

Wie kann ich alle CR/LF-Zeichen in Notepad ++ finden/ersetzen?

Ich suche nach etwas, das dem Sonderzeichen ^ p in Microsoft Word entspricht.

301
polara

[\r\n]+ sollte auch funktionieren

Update 26. März 2012, Erscheinungsdatum von Notepad ++ 6.:

OMG, es funktioniert jetzt tatsächlich !!!

PCRE regexp in Notepad++


Ursprüngliche Antwort 2008 (Notepad ++ 4.x) - 2009-2010-2011 (Notepad ++ 5.x)

Eigentlich nein, es scheint nicht mit regulären Ausdrücken zu funktionieren ...

Wenn Sie jedoch Notepad ++ 5.x verwenden, können Sie den erweiterten Suchmodus '' verwenden und nach \r\n suchen. Das findet alle Ihre CRLF.

(Mir ist klar, dass dies die gleiche Antwort ist wie die anderen, aber der erweiterte Modus ist nur mit Notepad ++ 4.9, 5.x und mehr verfügbar.)


Seit April 2009 gibt es auf der Notepad ++ - Site einen Wiki-Artikel zu diesem Thema:
"So ersetzen Sie Zeilenenden und ändern so das Zeilenlayout".
(Erwähnt von Georgiecasey in seinem/ihrem Antwort unten )

Einige relevante Auszüge umfassen die folgenden Suchvorgänge:

Einfache Suche (Ctrl+F), Suchmodus = Normal

Sie können im Bearbeitungsfenster eine EOL auswählen.

  • Bewegen Sie den Cursor einfach an das Ende der Zeile und tippen Sie Shift+Right Pfeil.
  • oder, um EOL mit der Maus auszuwählen, beginnen Sie am Zeilenende und ziehen Sie an den Anfang der nächsten Zeile. Das Ziehen nach rechts von EOL funktioniert nicht. Sie können EOL manuell kopieren und in das Feld für Unix-Dateien einfügen (nur LF-).

Einfache Suche (Strg + F), Suchmodus = Erweitert

Die Option "Erweitert" zeigt \n und \r als übereinstimmende Zeichen an.
Wie beim normalen Suchmodus sucht Notepad ++ nach dem genauen Zeichen.
Wenn Sie in einer Datei im UNIX-Format nach \r suchen, werden Sie nichts finden, sondern nach \n suchen. Ebenso enthält eine Datei im Macintosh-Format \r, jedoch nicht \n.

Einfache Suche (Strg + F), Suchmodus = Regulärer Ausdruck

Reguläre Ausdrücke verwenden die Zeichen ^ und $, um die Übereinstimmungszeichenfolge am Anfang oder Ende der Zeile zu verankern. Wenn Sie beispielsweise nach return;$ suchen, wird "return" vorkommen. die ohne nachfolgenden Text in derselben Zeile auftreten. Die Ankerzeichen funktionieren in allen Dateiformaten identisch.
Das '.' Das Punkt-Metazeichen stimmt nicht mit den Zeilenenden überein.

[Getestet in Notepad ++ 5.8.5]: Eine Suche nach regulären Ausdrücken mit einem expliziten \r oder \n funktioniert nicht (im Gegensatz zur Scintilla-Dokumentation ) .
Es wird auch nicht nach einer expliziten (eingefügten) LF oder nach (unsichtbaren) EOL-Zeichen gesucht, die in das Feld eingefügt werden, wenn eine EOL ausgewählt wird. Erweiterte Suche (Ctrl+R) ohne regulären Ausdruck

Ctrl+M fügt etwas ein, das mit Zeilenumbrüchen übereinstimmt. Sie werden durch die Ersetzungszeichenfolge ersetzt.
Ich empfehle diese Methode als die zuverlässigste, es sei denn, Sie müssen wirklich Regex verwenden.
Um beispielsweise jede zweite neue Zeile in einer Datei mit doppeltem Abstand zu entfernen, geben Sie Folgendes ein Ctrl+M zweimal im Suchfeld und einmal im Ersetzungsfeld.

Erweiterte Suche (Ctrl+R) mit Regexp.

Weder Ctrl+M, $ und \r\n stimmen überein.


Das gleiche Wiki erwähnt auch die Hex-Editor-Alternative :

  • Geben Sie die neue Zeichenfolge am Anfang des Dokuments ein.
  • Wählen Sie dann , um das Dokument im Hex-Modus anzuzeigen .
  • Wählen Sie eine der neuen Linien und drücken Sie Ctrl+H.
  • Wählen Sie im Dialogfeld Ersetzen im Hintergrund die neue Ersetzungszeichenfolge und aus Ctrl+C Kopieren Sie es, um es in das Feld Durch Texteingabe ersetzen einzufügen.
  • Ersetzen Sie dann oder ersetzen Sie alle, wie Sie wünschen.

Hinweis: Das für die neue Zeile ausgewählte Zeichen wird normalerweise als 0a angezeigt.
Es kann einen anderen Wert haben, wenn die Datei im Windows-Format vorliegt. In diesem Fall können Sie immer zu Edit -> EOL Conversion -> Convert to Unix Format wechseln und nach dem Ersetzen wieder zu Edit -> EOL Conversion -> Convert to Windows Format wechseln.

396
VonC

Es scheint, dass dies eine FAQ ist und die angebotene Auflösung ist:

Einfache Suche (Strg + H) ohne Regex

Sie können "Zeilenende anzeigen/anzeigen" aktivieren oder Ansicht/Alle anzeigen und wählen Sie jetzt sichtbare Zeilenumbrüche. Dann wenn Sie starten den Befehl mit einigen Zeichen Das Zeilenvorschubzeichen wird mit in das Suchfeld eingefügt. Streichhölzer wird durch das Ersetzen ersetzt String, anders als im Regex-Modus.

Hinweis 1: Wenn Sie sie mit .__ auswählen. Maus, starte direkt vor ihnen und ziehe zum Anfang der nächsten Zeile . Ziehen an das Ende der Linie wird nicht Arbeit. 

Hinweis 2: Sie können nicht kopieren und einfügen sie selbst ins Feld.

Erweiterte Suche (Strg + R) ohne Regex

Strg + M fügt etwas ein, das den Zeilenumbrüchen entspricht. Sie werden durch die Ersetzungszeichenfolge ersetzt.

22
sundar

Im Dialogfeld "Ersetzen" möchten Sie den Suchmodus auf "Erweitert" setzen. Der normale oder reguläre Ausdruck funktioniert nicht.

Dann suchen Sie einfach nach "\ r\n" (oder\n für Unix-Dateien oder\r für Mac-Formatdateien), und legen Sie als Ersatz fest, was Sie möchten.

10
Nathen Silver

Ich hatte mit\r\n regulären Ausdrücken aus dem Find/Replace-Fenster nicht viel Glück.

Dies funktioniert jedoch in Notepad ++ v4.1.2:

  1. Verwenden Sie das Menü "Ansicht | Ende der Zeile anzeigen", um die Anzeige der Zeilenendezeichen zu aktivieren. (Die Zeilenumbrüche für die Zeilenschaltung sollten als einzelnes, schattiertes CRLF-Zeichen angezeigt werden.)

  2. Wählen Sie eines der CRLF-Zeichen aus (setzen Sie den Cursor direkt vor ein Zeichen, halten Sie die UMSCHALTTASTE gedrückt und drücken Sie dann einmal die RECHTS-CURSOR-Taste).

  3. Kopieren Sie das CRLF-Zeichen in die Zwischenablage.

  4. Stellen Sie sicher, dass Sie nicht den Dialog zum Suchen oder Suchen/Ersetzen geöffnet haben.

  5. Öffnen Sie den Dialog "Suchen/Ersetzen" . Das Feld "Suchen nach" zeigt den Inhalt der Zwischenablage: in diesem Fall das CRLF-Zeichen - das als 2 "Box-Zeichen" angezeigt wird (vermutlich ein nicht druckbares Zeichen?)

  6. Stellen Sie sicher, dass die Option 'Regulärer Ausdruck' deaktiviert ist.

Jetzt sollten Sie in der Lage sein, wie gewünscht zu zählen, zu suchen oder zu ersetzen.

9
David Whitmore

Bild mit CRLF

enter image description here


Bild ohne CRLF

enter image description here

Ich fand, dass es funktioniert, indem Sie die Funktion Ersetzen verwenden und "\ n" im Modus "Erweitert" verwenden. Ich verwende Version 5.8.5.

4
Chris

In 2013, Version 6.13 oder höher, verwenden Sie Folgendes:

Menü Bearbeiten EOL-Konvertierung Windows-Format .

4
Aquarius Power

Verwenden Sie die erweiterte Suche (Ctrl + R) und verwenden Sie die Tastenkombination für CRLF (Ctrl + M), um einen Wagenrücklauf einzufügen.

2
Chris

Angenommen, es gibt eine Suche nach "regulären Ausdrücken", suchen Sie nach\r\n. Ich bevorzuge\r?\N, weil einige Dateien keine Zeilenumbrüche verwenden.

EDIT: Vielen Dank für das Feedback, wer auch immer abgelehnt hat. Ich habe das gelernt ... nun, nichts, weil Sie keine Rückmeldung gegeben haben. Warum ist das falsch?

2

Wenn Sie einen komplexen Austausch des regulären Ausdrucks durchführen müssen, einschließlich\r\n, können Sie die Einschränkung durch einen dreistufigen Ansatz umgehen:

  1. Ersetzen Sie alle \r\n durch ein Tag, sagen wir #GO# → Aktivieren Sie 'Extended' und ersetzen Sie \r\n durch #GO#.
  2. Führen Sie Ihren regulären Ausdruck aus, zum Beispiel das Entfernen von mehrzeiligem Code ICON="*" aus einem HTML-Lesezeichen. → Überprüfen Sie den Ausdruck regexp und ersetzen Sie ICON=.[^"]+.> by >.
  3. Zurücksetzen\r\n → 'Erweitert' markieren, #GO# durch \r\n ersetzen
2
alex

Gehen Sie zu Ansicht -> Symbol anzeigen -> Alle Zeichen anzeigen // Es hat für mich gearbeitet

1
user2447473

Ich habe die Datei in Notepad ++ geöffnet und in wenigen Schritten ersetzt:

  1. Ersetzen Sie alle "\ r\n" durch "\ r\n"
  2. Ersetzen Sie alle ";\r\n" durch "\ r\n"
  3. Ersetzen Sie alle "\ r\n" durch ""

Dadurch werden alle Unterbrechungen an die richtigen Stellen gesetzt und diejenigen entfernt, die die Datei auflösen.

Es hat für mich funktioniert.

1
Cognis

Nehmen Sie diese Einstellung vor. Menü-> Ansicht-> Symbol anzeigen-> Deaktivieren Sie das Kontrollkästchen Ende der Zeile anzeigen

0
Madhava Reddy

Ich konnte dies in NP v6.9 ..__ absolut nicht tun. Ich fand es leicht genug für Msoft Word (2K).

Öffne das Dokument, gehe zu Bearbeiten-> Ersetzen.

Klicken Sie dann im unteren Bereich des Suchfelds auf "mehr" und suchen Sie nach der Schaltfläche "Spezial". Dort finden Sie mehrere Dinge für Sie. Für den DOS-Stil habe ich den "Absatz" verwendet. Dies ist ein cr lf-Paar in Windows.

0
Cool Javelin

Führen Sie einfach ein\r mit einem Suchen aus und ersetzen Sie es durch ein Leerzeichen im Ersetzungsfeld, damit alles bis zu einer Zeile hochgeht. Dann suchen und ersetzen (in meinem Fall durch Semikolon) und ersetzen mit;\n

:) -T & C

0
Trent

Vielleicht können Sie TextFX-Plugins verwenden

Gehen Sie in TextFX zu textfx edit → leere Zeilen löschen

0
harinoir

So ändern Sie ein Dokument mit mehreren Zeilen in eine einzelne Zeile, wobei jede Zeile einen Eintrag in einer durch Kommas getrennten Liste bildet:

  1. ctrl+f um die Suche/Ersetzung zu öffnen.
  2. Klicken Sie auf die Registerkarte "Ersetzen".
  3. Füllen Sie den Eintrag "Suchen nach" mit "\r\n".
  4. Füllen Sie den Eintrag "Ersetzen durch" mit "," oder "," (je nach Präferenz).
  5. Deaktivieren Sie das Kontrollkästchen "Ganzes Wort abgleichen" (das wichtige Bit, das sich der Logik entzieht).
  6. Aktivieren Sie das Optionsfeld "Erweitert".
  7. Klicken Sie auf die Schaltfläche "Alle ersetzen".

Diese Schritte drehen , z. B.

foo Bar

bar Baz

baz foo

in:

foo Bar, Bar Baz, Baz Foo

oder: (je nach Präferenz)

foo Bar, Bar Baz, Baz Foo

0
Fred Gandt