Ändern Sie EOL für mehrere Dateien auf einmal


100

Gibt es in Notepad ++ (oder sogar mit einem anderen Tool) eine Möglichkeit, das Zeilenende automatisch für mehrere Dateien gleichzeitig zu ändern ?

dh konvertieren Sie eine Mischung aus Windows EOL ( CRLF) - und UNIX EOL ( LF) -Dateien in alle Windows EOL ( CRLF)


1
Falls Notepad ++ keine feste Anforderung ist, könnten die Informationen hier relevant sein: stackoverflow.com/questions/3110031/…
Ruben

Antworten:


102

Das Dialogfeld " Ersetzen " kann erweiterte Zeichen wie EOL verarbeiten. Ändern Sie einfach "Suchmodus" in "Erweitert" und Sie können mit EOL (\ r \ n unter Windows oder \ n unter Unix), Registerkarten (\ t) usw. arbeiten.

Sie können auch die Registerkarte In Dateien suchen des Dialogfelds verwenden, um das Ersetzen über mehrere Dateien hinweg durchzuführen.

Bildschirmfoto


14
Beachten Sie, dass diese Lösung nicht funktioniert, wenn nicht alle Ihre Dateien bereits im Unix-Stil vorliegen. Da Ersetzen \nmit \r\nauch konvertieren \r\nzu \r\r\n.
Kirk Woll

-1 ohne Änderung von Bearbeiten> EOL-Konvertierung (siehe Dos \ Windows in der Statusleiste Ihres Screenshots).
Wenn Sie

42
Ersetzen Sie \ n durch \ r \ n. Ersetzen Sie dann \ r \ r \ n durch \ r \ n. voila!
dev_row

2
Warum Ihr Screenshot Beispiel zeigt \tin Find what? Tabs haben nichts mit dem Ändern von Zeilenenden zu tun, oder?
Trejder

1
großartig ... es funktioniert perfekt in Notepad ++ Editor ... es spart enormen Aufwand, den wir durch manuelle Änderungen
aufwenden werden

91

Ich habe Notepad ++ 6.1.2.
Im Menü "Bearbeiten" haben Sie "EOL-Konvertierung", die genau das tut, was Sie brauchen.


24
Das funktioniert auf Dateibasis und kann nicht auf eine ganze Reihe von Dateien angewendet werden.
fduff

10
Hast du den Titel der Frage gelesen? Haben Sie den Teil "EOL für mehrere Dateien ändern " gesehen?
Sk8erPeter

2
Sie würden mehr als eine Datei öffnen, um nacheinander mehr als eine Datei zu bearbeiten. Wie er sagte, "auf einmal" war ursprünglich nicht da.
Eltern

7
Tatsächlich war die Antwort für mich sehr nützlich, da ich EOL in einzelnen Dateien ändern musste und nicht wusste, wie.
DiegoDD

5
Nützliche Antwort, da dies zuerst in Google auftaucht
Matthew Lock

69

Verwenden Sie die Funktion "In Dateien suchen" (Strg + Umschalt + F). Ändern Sie den Suchmodus unten links in "Regulärer Ausdruck".

Verwenden Sie im Feld "Suchen nach" dieses Muster:

(?<!\r)\n

Ersetzen mit:

\r\n

Wählen Sie Ihr Verzeichnis und geben Sie alle Dateitypfilter an. Aktivieren Sie "In allen Unterordnern", wenn Sie möchten. Klicken Sie auf "In Dateien ersetzen".

Dadurch werden alle Zeilenumbrüche (\ n), denen derzeit kein Wagenrücklauf (\ r) vorangestellt ist, durch \ r \ n ersetzt. Es wird also nicht mit Zeilenenden übereinstimmen, die bereits im Windows-Stil sind.

Geben Sie hier die Bildbeschreibung ein


1
Können Sie erklären, was (?<!\r)\nbedeutet, vor allem der erste ?<!Teil, danke!
user1032613

2
Das (?<! )ist ein negativer Lookbehind. Es bedeutet Übereinstimmung, wenn das Präfix fehlt. In diesem Fall \rwird nach \ngesucht und es wird nur übereinstimmen, wenn kein vorangestellt ist \r.
RTPHarry

Ja. Ich stimme rtpHarry zu. Das ist dieser Teil von meiner Antwort: „alle Zeilenumbrüche (\ n) , die sich nicht gerade durch einen Wagenrücklauf (\ r) vorangestellt “.
Sean

1
anspruchsvollste Lösung!
Philipp Michalski

4
Technisch gesehen ist dies die genaueste und vollständigste Antwort auf dieser Seite.
dotNET

8

Verwenden Sie Ersetzen Sie alle durch reguläre Ausdrücke

(\r?\n)|(\r\n?)

zu

\r\n

Dies entspricht jedem möglichen Zeilenendmuster (einzeln \ r, \ n oder \ r \ n) zurück zu \ r \ n (Windows).

So bearbeiten Sie mehrere Dateien:

  • Verwenden Sie "Alle in allen geöffneten Dokumenten ersetzen" auf der Registerkarte "Ersetzen". Sie müssen zuerst alle Dateien per Drag & Drop in Notepad ++ ziehen. Es ist gut, dass Sie die Kontrolle darüber haben, welche Datei bearbeitet werden soll, aber es kann langsam sein, wenn mehrere hundert oder tausend Dateien vorhanden sind.
  • "In Dateien ersetzen" auf der Registerkarte "In Dateien suchen" nach einem Dateifilter Ihrer Wahl, z. B. * .cpp * .cs unter einem angegebenen Verzeichnis.

Beste Antwort, da es mit allen Varianten von Zeilenenden funktioniert. Vielen Dank!
Jojo

Dies ist die beste und einfachste Antwort!
user1447420

5

Die einzige funktionierende Lösung, die ich für mehrere Dateien / Ordner gefunden habe, nachdem ich 1 Stunde gegoogelt habe, ist folgende:

  • Installieren Sie den PyCham- Testmodus.
  • Öffnen und wählen Sie Ihren Projektordner / Ihre Projektordner aus und folgen Sie dem Screenshot

Geben Sie hier die Bildbeschreibung ein


Funktioniert auch in der IntelliJ IDEA Community Edition, die kostenlos ist und keine Testversion erfordert. IntelliJ IDEE .
CodeMonkey

1

Diese Lösung über diese Diskussion gefunden :

Sie können die Standard-EOL auch in Notepad ++ über "Einstellungen" -> "Einstellungen" -> "Neues Dokument / Standardverzeichnis" festlegen und dann im Feld "Format" die Option "Unix / OSX" auswählen.

Hinweis: Über die Befehlszeile kann immer eine Out-of-Band-Option verwendet werden:

unix2dos *.cmd
dos2unix *.sh

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.