Notepad ++ Suchen und Ersetzen von Zeichenfolgen durch eine neue Zeile

212

Stellen Sie sich das Szenario vor, in dem Sie eine bestimmte Zeichenfolge haben, die Sie suchen und ersetzen möchten. Sie möchten es durch eine neue Zeichenfolge ersetzen, die ein Zeilenvorschubzeichen (oder eine Zeichenfolge) enthält.

abc123 xyz456-blah
fsafd23 xyz456-green
89hjkf23 xyz456-red
afdsa23 xyz456-yellow
abaac123 xyz456-orange

Im obigen Szenario möchte ich " xyz" suchen und das Leerzeichen durch einen Wagenrücklauf / Zeilenvorschub ersetzen.

Die Ergebnisse würden so aussehen:

abc123
xyz456-blah
fsafd23
xyz456-green
89hjkf23
xyz456-red
   ︙

usw...

Frage: Wie würden Sie dies am einfachsten mit Notepad ++ erreichen? Gibt es andere Tools, die Sie vorschlagen würden, um diesen Befehl einfach auszuführen?

p.campbell
quelle

Antworten:

279

Notepad ++ reicht völlig aus.

Suchbegriff:

 xyz
Beachten Sie das Leerzeichen vor xyz.

Zeichenfolge ersetzen:

\ r \ nxyz

Sie müssen außerdem den "Suchmodus" auf "Erweitert" setzen (Gruppenfeld unten links im Dialogfeld " Ersetzen "), damit Notepad ++ Escape-Codes berücksichtigt.


Hintergrund: "\ r \ n" ist der Escape-Code für den Wagenrücklauf, der Standard für neue Zeilen in Windows. Unix-artige Systeme verwenden einfach \ n (Newline). Die meisten IDEs, einschließlich Notepad ++, verstehen beide Stile und stellen sie jeweils mit neuen Zeilen dar. Die wichtigsten Windows-Dienstprogramme verstehen jedoch nicht, dass sie \ n mit \ r \ n äquivalent sind in Windows-Umgebungen verwendet werden.

Kaliban
quelle
2
\ r \ n = Windows-Newline-Syntax. Für alles andere als den normalen alten Notizblock wird jedoch nur \ n für eine neue Zeile akzeptiert (was auch konventioneller ist).
Macha
3
Ihre Formulierung "konventioneller" ist irreführend. "\ r \ n" ist der Standard unter Windows. Es ist nur so, dass viele Editoren und IDEs das Unix / Linux-Standardzeilenende "\ n" erkennen und das Dokument entsprechend anzeigen. "\ N" hat nichts Konventionelleres an sich.
Brian Lacy
Um ehrlich zu sein, ist die Win / DOS-Version für mich sinnvoller. "\ r" bedeutet "Wagenrücklauf oder 'Wagen / Cursor an den Zeilenanfang zurücksetzen'" und "\ n" bedeutet "Wagen / Cursor um eine Zeile vorrücken". Natürlich kam Unix vor 20 Jahren, also ist es wohl Microsoft, das den Standard gebrochen hat.
Brian Lacy
7
wie in der anderen Antwort dies nicht funktionieren , wenn Sie den Suchmodus eingestellt, angegeben: superuser.com/questions/34451/...
codeulike
7
Wenn Sie versuchen, die Literalzeichenfolge "\ r \ n" durch eine aktuelle neue Zeile zu ersetzen, musste ich Folgendes tun: Setzen Sie den Suchmodus auf "Normal", und suchen / ersetzen Sie "\ r \ n" durch "***". Stellen Sie dann den Suchmodus auf Erweitert und suchen / ersetzen Sie *** mit \ r \ n.
goku_da_master
61

In Notepad ++ ist es sehr einfach ...

  • Finden: xyz
  • Ersetzen durch: \ n


  • Suchmodus: Erweitert (\ n, \ t usw.)

Der Trick besteht darin, den Suchmodus einzustellen.

th3dude
quelle
1
Diese Antwort hat bei mir geklappt, die akzeptierte nicht. Ver 5.8.6
bdwakefield
Ja, hier auch, die akzeptierte Antwort wurde im erweiterten Modus nicht angegeben.
Andy
Warum nicht \r\n(statt \n)?
Peter Mortensen
5

Ich schummle ein bisschen, wenn S & Ring-Zeichen, die ich nicht direkt in die Textfelder eingeben kann (z. B. Tabulatoren und Zeilenumbrüche). Suchen Sie irgendwo im Dokument nach dem Zeichen, kopieren Sie es und fügen Sie es in das Ersetzungsfeld ein.

Beginnen Sie in Ihrem Beispiel also ganz am Anfang einer Zeile, klicken Sie, ziehen Sie an das Ende der vorhergehenden Zeile, kopieren Sie diese und fügen Sie sie in das Dialogfeld Ersetzen ein.

Macha
quelle
5

Vergewissern Sie sich, dass im Dialogfeld "Ersetzen" unter "Suchmodus" die Option "Erweitert" ausgewählt ist. Geben Sie dann in das Suchfeld "xyz" ein und ersetzen Sie es durch "\ n".

tj111
quelle
1
Warum nicht \r\n(statt \n)?
Peter Mortensen
2

Ändern Sie für Notepad ++ den Suchmodus in Erweitert und verwenden Sie dann im Feld Ersetzen durch \ n .

dlux
quelle
1
Warum nicht \r\n(statt \n)?
Peter Mortensen