Wie konvertiere ich alle EOL (DOS- & gt; unix) aller Dateien in einem Verzeichnis und Unterverzeichnissen rekursiv ohne dos2unix
? (Ich habe es nicht und kann es nicht installieren.)
Gibt es eine Möglichkeit, es mit tr -d '\r'
und Pipes zu machen? Wenn ja, wie?
Sie können seds -i
-Flag verwenden, um die Dateien direkt zu ändern:
Wenn ich Sie wäre, würde ich die Dateien behalten, um sicherzustellen, dass die Operation in Ordnung ist. Dann können Sie die temporären Dateien löschen, wenn Sie fertig sind. Dies kann so gemacht werden:
%Vor%Haben Sie vernünftige Dateinamen und Verzeichnisnamen ohne Leerzeichen usw.?
Wenn ja, ist es nicht zu schwer. Wenn Sie mit willkürlichen Namen arbeiten müssen, die Zeilenumbrüche und Leerzeichen enthalten, dann müssen Sie härter arbeiten als das.
%Vor%Die Trap-Funktion stellt sicher, dass keine temporären Dateien übrig bleiben. Dort können Sie weitere Tricks mit mehr zufälligen Namen für Ihre temporären Dateinamen ziehen. Normalerweise brauchen Sie sie nur, wenn Sie in einer feindlichen Umgebung arbeiten.
Wenn \r
nicht gefolgt wird von \n
(vielleicht der Fall in Dateien von Tim Pote):
\r
(mit tr -d
) kann Zeilenumbrüche löschen \r
durch \n
darf keine doppelten / dreifachen Zeilenumbrüche verursachen Vielleicht könnte Tim Pote die obigen Punkte für die von ihm erwähnten Dateien überprüfen.
Tags und Links command-line linux bash unix end-of-line