it-swarm.com.de

Arbeiten mit Textdateien, die mit Windows-1250 und UTF-8 codiert sind

Ich wechsle häufig zwischen Ubuntu und Windows, daher habe ich einige Codierungsprobleme mit Textdateien.

Wenn ich eine Textdatei in Ubuntu speichere, funktioniert auf beiden Systemen alles einwandfrei. Ubuntu erkennt jedoch keine Codierung von Dateien, die mit Windows gespeichert wurden. Jedes Mal, wenn ich die "Windows-Datei" im Ubuntu-Texteditor öffne, muss ich die Codierungsoptionen ändern.

Die Lösung besteht darin, die Codierung von Windows-1250 auf utf-8 zu ändern.

Die Frage ist also, wie man jede Datei mit Windows-1250 öffnet und mit utf-8 für jede Datei in Unterverzeichnissen des aktuellen Verzeichnisses speichert (rekursiv meine ich). Kann ich das im Terminal machen oder ich brauche eine externe Anwendung.

Ich freue mich auf Ihre Hilfe.

5
dagi12

Ich bevorzuge es, recode dafür zu verwenden. Es ist nicht standardmäßig installiert, aber über das Paket mit dem gleichen Namen verfügbar. Außerdem werden die CRLF-Zeilenenden in LF geändert.

Sudo apt-get install recode
recode cp1250.. file.txt

Sie können dies für alle txt-Dateien in einem gesamten Verzeichnis tun

recode cp1250.. ./*.txt

Und rekursiv durch Kombination mit find

find . -type f -name "*.txt" -exec recode cp1250.. {} +

Die Standardoption besteht darin, den Befehl iconv zu verwenden, der standardmäßig installiert ist. Dadurch werden jedoch die Zeilenenden nicht geändert. Sie müssen dies also in einem anderen Schritt tun:

iconv -f cp1250 < file.txt | sed $'s/\r$//' > newfile.txt

Auf lange Sicht würde ich empfehlen, den Standardzeichensatz und das Zeilenende Ihres Windows-Editors auf UTF-8- und UNIX-Zeilenenden (LF, \n) zu ändern, um zu vermeiden, dass die Konvertierung nachträglich durchgeführt werden muss.


CR bedeutet Wagenrücklauf (\r)
LF bedeutet Zeilenvorschub (\n)

Windows verwendet beide, aber Unix-ähnliche Systeme verwenden nur LF.

8
geirha

Sublime Text macht das Speichern in einer anderen Dateicodierung ziemlich einfach. Sie können auch mit einer anderen Codierung erneut öffnen und mit mehreren Dateien arbeiten. Aktivieren Sie diese Option answer , um weitere Informationen zu erhalten.

0
Bretsko