Was ist der beste Weg, um CRLFs in Zeilenvorschübe in Dateien unter Linux zu konvertieren ?
Ich habe sed- Befehle gesehen, aber gibt es etwas Einfacheres?
linux
carriage-return
JoelFan
quelle
quelle
Antworten:
Verwenden Sie diesen Befehl:
Umgekehrt:
Diese Befehle befinden sich im Paket tofrodos (auf den neuesten Distributionen), das auch die beiden Wrapper unix2dos und dos2unix enthält , die die alten Unix-Tools mit demselben Namen imitieren.
quelle
find . -name '*.txt' -print0 | xargs -null fromdos
Verwenden Sie
dos2unix
.quelle
Ich bevorzuge perl :
Aber das ist gut für meine Zwecke geeignet, und ich kann mich sehr leicht daran erinnern. Nicht alle Systeme haben einen dos2unix-Befehl, aber die meisten, an denen ich arbeite, haben einen Perl-Interpreter.
Ein weiterer Grund ist recode , ein leistungsstarker Ersatz für dos2unix und iconv. es ist im "recode" -Paket in Debian-Repositories verfügbar:
Für awk Fans:
... und sed :
Und jetzt, nur etwas weniger kompliziert als das Löschen der CRs von Hand in einem Hex-Editor, direkt von einem unserer stackoverflow.com-Freunde , verwendbar mit dem Beef- Interpreter (in Ihrem Debian-Repository in der Nachbarschaft).
dos2unix in brainfuck !
Ein großes Dankeschön an jk, dass er eine Stunde seines Lebens damit verschwendet hat, dies zu schreiben!
quelle
Ich mache das auf Bash :
quelle
Ich denke, Sie können auch Folgendes verwenden
tr
(obwohl ich keine lustigen Formatdateien zum Ausprobieren habe):quelle
In vi oder Vim :
quelle
Ich habe einen sehr einfachen Weg gefunden ... Datei mit nano öffnen: ## nano file.txt
Drücken Sie zum Speichern Strg + O, aber bevor Sie die Eingabetaste drücken, drücken Sie: Alt + D, um zwischen DOS- und Unix / Linux-Zeilenenden umzuschalten, oder: Alt + M, um zwischen Mac- und Unix / Linux-Zeilenenden umzuschalten, und drücken Sie dann die Eingabetaste, um zu speichern und Strg + X zum Beenden.
quelle
Alt+d
. Manchmal wird alt vom Terminalprogramm abgefangen, sodass Sieesc+d
stattdessen verwenden können.Ich bevorzuge Vim und
:set fileformat=unix
. Obwohl es nicht das schnellste ist, gibt es mir eine Vorschau. Dies ist besonders nützlich bei Dateien mit gemischten Endungen.quelle
Wenn Sie eine GUI-Methode wünschen, probieren Sie den Kate- Texteditor aus (andere erweiterte Texteditoren können dies möglicherweise ebenfalls verarbeiten). Öffnen Sie das Dialogfeld Suchen / Ersetzen ( Ctrl+ R) und ersetzen Sie
\r\n
durch\n
. (Hinweis: Wählen Sie "Regulärer Ausdruck" aus der Dropdown-Liste und deaktivieren Sie "Nur Auswahl" aus den Optionen.)EDIT: Oder, wenn Sie einfach auf Unix - Format konvertieren wollen, dann die Menüoption
Tools
>End of Line
>Unix
.quelle
\r\n
zu\n
dann suchen mit / ersetzen ist einfacher als Erinnerns , die OS verwendet , die Linie endet. ;)Fügen Sie dies in das Python-Skript dos2unix.py ein .
Sollte auf jeder Plattform funktionieren, auf der Python installiert ist. Public Domain.
quelle
CR LF
um awk zuLF
benutzen :Anwendungsbeispiel:
Erläuterung:
-v RS='\r?\n'
setzt die Variable RS ( Eingang r ECORD s eparator) an\r?\n
, wird Bedeutung Eingang zeilenweise gelesen von LF getrennt (\n
) , die (möglicherweise?
durch CR (vorgeschaltet ) werden\r
).1
ist das Skript, das awk ausführt. Ein Skript besteht auscondition { action }
. In diesem Fall1
ist die Bedingung, die als wahr ausgewertet wird. Die Aktion wird weggelassen, sodass die Standardaktion ausgeführt wird. Dies bedeutet , dass die aktuelle Zeile gedruckt wird (die auch als{print $0}
oder einfach geschrieben werden kann{print}
).LF
zuCR LF
: Sie können die VariableORS
( o utput r ECORD s eparator) , um die Leitungsenden der Ausgabe zu ändern. Beispiel:quelle
Ich habe dieses Skript für Dateien verwendet, die ich für die Notfallübertragung von Dateien von einem Windows-System auf ein Unix-System benötigte.
find . -type f
Findet alle Dateien rekursiv in dem Verzeichnis, in dem Sie den Befehl ausführen
xargs file
Übergeben Sie es an das Dateiprogramm , um eine Analyse der Datei zu erhalten.
grep CRLF
Wir wollen nur die Ausgabe einer Datei , die CRLF anzeigt.
cut -d: -f1
Bringen Sie die Ausgabe auf die Farbe. den Rest wegwerfen. Wir sollten jetzt nur einen Dateinamen haben
xargs dos2unix
Übergeben Sie den Dateinamen mit xargs an das Programm dos2unix .
quelle