Neue Zeilen durch ein Komma-Trennzeichen durch Notepad ++ ersetzen?

165

Ich habe eine Notepad ++ Frage.

Wie kann ich die folgenden Wörter in Notepad ++ (das in verschiedenen Zeilen steht) nehmen?

Apples
Apricots
Pear
Avocados
Bananas

Und sie in einen Absatz mit einem Komma am Ende jedes Absatzes verwandeln? So was:

Apples, Apricots, Pear, Avocados, Bananas
user2231530
quelle

Antworten:

324

Öffnen Sie den Dialog zum Suchen und Ersetzen (drücken Sie CTRL+ H).

Wählen Sie dann Regular expressionunten im Abschnitt "Suchmodus" aus.

Geben Sie im Find whatFeld Folgendes ein:[\r\n]+

In der Replace with:

Nach dem Komma steht ein Leerzeichen.

Dies ersetzt auch Zeilen wie

Apples

Apricots
Pear

Avocados
Bananas

Wo es leere Zeilen gibt.

Wenn Ihre Zeilen nachgestellte Leerzeichen enthalten, sollten Sie diese zuerst entfernen. Der einfachste Weg, dies zu erreichen, ist

EDIT -> Blank Operations -> Trim Trailing Space

ODER

TextFX -> TextFX Edit -> Trim trailing spaces

Stellen Sie sicher, dass der Suchmodus auf "Regulärer Ausdruck" eingestellt ist.

Bonifacio2
quelle
Wenn in der Zeile nachgestellte Leerzeichen vorhanden sind, können Sie dies tun _*[\r\n]+. Um mit den Leerzeichen umzugehen, die in überschüssige Kommas umgewandelt wurden, können Sie einen regulären Ausdruck suchen ,_[,_]+und durch ersetzen ,_. Alternativ verfügt das TextFx-Paket über einen Befehl zum Löschen von Leerzeilen, der vor dem Hinzufügen der Kommas verwendet werden kann. (Beachten Sie, dass Änderungsunterstriche zu Leerzeichen in diesen Codeblöcken gehören.)
AdrianHHH
Ja, du bist sehr richtig. Ich habe nur versucht, eine minimalistische Antwort zu geben. Vielleicht sollte ich dann die Antwort bearbeiten.
2
Dies funktioniert bei mir nicht: Ich sehe "0 Vorkommen wurden ersetzt."
Iain Samuel McLean Elder
3
@IainElder, der Suchmodus muss auf "Regulärer Ausdruck" anstelle von "Normal" oder "Erweitert" eingestellt sein.
Scott Lawrence
Ich hatte das gleiche Ergebnis wie Iain.
Dhochee
34

Folgendes hat bei mir mit einer ähnlichen Liste von Zeichenfolgen in Notepad ++ ohne Makros oder sonst etwas funktioniert:

  1. Klicken Sie auf Bearbeiten -> Leere Operationen -> EOL in Leerzeichen. [Alle Elemente sollten jetzt in einer einzelnen Zeile stehen, die durch ein Leerzeichen getrennt ist.]

  2. Wählen Sie ein beliebiges 'Leerzeichen' aus und führen Sie ein Ersetzen aller aus (durch ',').

Trishulpani
quelle
Einfach und elegant, schön
Reggaeguitar
@ Trishul Wirklich schön.
himanshupareek66
32

Die Antwort von fapDaddy mit einem Makro zeigte mir die richtige Richtung.

Genau das hat bei mir funktioniert.

  1. Platzieren Sie den Cursor nach dem ersten Datenelement. Geben Sie hier die Bildbeschreibung ein

  2. Klicken Sie im Menü auf "Makro> Aufnahme starten". Geben Sie hier die Bildbeschreibung ein

  3. Geben Sie diese Reihenfolge: Comma, Space, Delete,End .Geben Sie hier die Bildbeschreibung ein

  4. Klicken Sie im Menü auf "Makro> Aufnahme beenden". Geben Sie hier die Bildbeschreibung ein

  5. Klicken Sie im Menü auf "Makro> Makro mehrmals ausführen ...". Geben Sie hier die Bildbeschreibung ein

  6. Klicken Sie auf "Bis zum Ende der Datei ausführen" und dann auf "Ausführen". Geben Sie hier die Bildbeschreibung ein

  7. Entfernen Sie alle nachfolgenden Zeichen. Geben Sie hier die Bildbeschreibung ein

  8. Getan!

Geben Sie hier die Bildbeschreibung ein

Iain Samuel McLean Elder
quelle
5
Diese Methode ist für Tausende von Datenelementen langsam.
Iain Samuel McLean Elder
Gute Antwort. Danke :)
Peter T.
Solch eine großartige Information wird in vielen ähnlichen Situationen nützlich sein. Vielen Dank!
Moin
Vielen Dank für die Weitergabe der Informationen. Es ist interessant.
Ironman
4

Für Notepad ++ 5.9

  1. Drücken Sie Strg + H.
  2. Wählen Sie den Suchmodus Erweitert (\ n, \ r, \ t, \ o, \ x ...)
  3. Enter Find what: \ r \ n ein
  4. Geben Sie Ersetzen durch : ,
  5. Replace_All sollte das gewünschte Ergebnis erhalten.
ketan27j
quelle
3
Diese Antwort wiederholt die akzeptierte Antwort und bezieht sich auf eine antike Version von Notepad ++, Version 7.4.x ist jetzt verfügbar. Willkommen bei Stack Overflow, aber bitte geben Sie Ihren Antworten neue Informationen oder geben Sie neue Einblicke. Das Wiederholen vorhandener Antworten ist nicht sinnvoll.
AdrianHHH
Für neuere Versionen von npp ist dies der bessere Weg.
Nurdyguy
Dies ist die einfachste Antwort. Ich sollte nicht in den Modus für reguläre Ausdrücke wechseln müssen, um Zeilenumbrüche durch Kommas zu ersetzen. N ++ funktioniert tatsächlich korrekt, während andere Editoren "\ n" als Wagenrücklauf UND Zeilenvorschub interpretieren, was mich zunächst verwirrte.
BrianVPS
3

Platzieren Sie den Cursor nach Äpfeln und wählen Sie unter der Registerkarte " Makro" die Option "Aufnahme starten" . Geben Sie das Komma ( , ) und das Leerzeichen () ein und drücken Sie die Ende- Taste. Wählen Sie auf der Registerkarte Makro die Option Aufzeichnung beenden .

Strg + Umschalt + P für die Einzelwiedergabe.

viclim
quelle
Danke für diesen Tipp. Was ist, wenn ich 5000 ++ Wörter habe? Muss ich das Makro für alle einzeln ausführen? Gibt es eine einfachere Methode?
user2231530
Wenn Sie in Zukunft eine ähnliche Aufgabe ausführen müssen, möchten Sie möglicherweise ein Skript dafür schreiben. Ein einfacher Ausweg ist wahrscheinlich, einfach zur Registerkarte "Makro" zu gehen und "Makro mehrmals ausführen" auszuwählen. Es wird in Sekunden erledigt sein.
Viclim
+1 Ihre Antwort hat mich in die richtige Richtung gelenkt. In meiner Antwort habe ich genau dokumentiert, was für mich funktioniert hat.
Iain Samuel McLean Elder
2

Das mag seltsam klingen, aber Sie können die nächste Zeile entfernen, indem Sie den gesamten Text kopieren, in die Firefox-Suchleiste einfügen und dann in Notepad ++ erneut einfügen

Schritt 1

Schritt 2

Dipin Prakash
quelle
1
Bitte verbessern Sie diese Antwort. Links zu Bildern sind nicht hilfreich.
Drew
2

BENUTZEN Sie die Suchleiste von Chrome

1-Drücken CTRL F
2-Einfügen des kopierten Textes in die Suchleiste
3-Drücken, CTRL Agefolgt von CTRL Cerneutem Kopieren des Textes aus der Suche
4-Einfügen in Notepad ++
5-Ersetzen 'space'durch','

1-Klick für Bild
2-Klick für Bild

Mohsin Mahmood
quelle
0

Sie können die Befehlszeile cc.rnl ', 'von ConyEdit (ein Plugin) verwenden, um neue Zeilen durch den gewünschten Inhalt zu ersetzen.

Dick
quelle
0

Ein Regex-Match mit \s+hat für mich funktioniert:

Geben Sie hier die Bildbeschreibung ein

user3673
quelle
Übrigens: Es scheint mir, dass ein Regex-Match mit $^funktionieren sollte, aber es passt stattdessen ^$.
user3673
Die Verwendung der Option "Erweitert" direkt über der Option "Regulärer Ausdruck" (in Ihrem Screenshot) ist tatsächlich der einfachste Weg, dies zu erreichen.
Nurdyguy