Hallo, ich nehme mal an, die meisten, die auf SuSE 9.1 updaten werden das Problem haben ihre bestehen Daten von latin1 auf UTF-8 zu konvertieren. Leider haben die SuSE-Buben noch keinen Eintrag in die SDB gesetzt deshalb. Das Konvertieren der Dateinamen ist mit dem folgenden Kommando ist kein Problem. convmv --notest -r -f latin1 -t utf-8 Bleibt nur noch das Problem mit den Dateiinhalten. Ich habe hier mehrere Verzeichnisse mit Text-Dateien und die will ich natürlich nicht per Hand anpassen. Mit "iconv" ist es möglich den Inhalt einer Datei umzuwandeln: iconv -f latin1 -t utf-8 datei.txt >> xor-datei.txt Meine Frage: Ist hier jemand gut genug im Shell-Skipting, der ein kleines Skript schreiben kann, das automatisch mit "iconv" alle Dateien (in allen Unterverzeichnissen) konvertiert? Leider reichen meine Kenntnisse nicht aus. Sicher wäre so ein kleines Skript für viele auf dieser Liste interessant. Viele Grüße, Christian Baun -- --------- Christian Baun www.bauni.de UIN: 9107054 Tel:0170-2817531
-----Original Message----- From: bauni [mailto:cray@unix-ag.uni-kl.de] Sent: Friday, April 30, 2004 3:51 PM To: suse-linux@suse.com Subject: SuSE 9.1 und UTF-8 (kleines Shell-Skript gesucht)
Hallo,
ich nehme mal an, die meisten, die auf SuSE 9.1 updaten werden das Problem haben ihre bestehen Daten von latin1 auf UTF-8 zu konvertieren. Leider haben die SuSE-Buben noch keinen Eintrag in die SDB gesetzt deshalb. Das Konvertieren der Dateinamen ist mit dem folgenden Kommando ist kein Problem.
convmv --notest -r -f latin1 -t utf-8
Bleibt nur noch das Problem mit den Dateiinhalten. Ich habe hier mehrere Verzeichnisse mit Text-Dateien und die will ich natürlich nicht per Hand anpassen. Mit "iconv" ist es möglich den Inhalt einer Datei umzuwandeln:
iconv -f latin1 -t utf-8 datei.txt >> xor-datei.txt
Meine Frage: Ist hier jemand gut genug im Shell-Skipting, der ein kleines Skript schreiben kann, das automatisch mit "iconv" alle Dateien (in allen Unterverzeichnissen) konvertiert? Leider reichen meine Kenntnisse nicht aus. Sicher wäre so ein kleines Skript für viele auf dieser Liste interessant.
Hallo, ungetestet in perl :) Verwendung auf eigene Gefahr ! #!/usr/bin/perl $indir = "/texte/"; use File::Path; chdir ("$indir"); foreach $file (glob("*.txt")) { $execme = "# iconv -f latin1 -t utf-8 $file >> $file_new"; open (iconver, "|$execme"); close(iconver); } Die # hab ich zu meiner Absicherung gesetzt :-) -- MfG Yann Wissenbach - Administration/Support compass Gesellschaft fuer Medientechnologie mbH Robert-Koch-Str. 35 D-55129 Mainz mail: y.wissenbach@compass-online.de www : http://www.compass-online.de fon : +49 6131 90 63 - 121 fax : +49 6131 90 63 - 222
Am Freitag, 30. April 2004 15:50 schrieb bauni: Moin,
ich nehme mal an, die meisten, die auf SuSE 9.1 updaten werden das Problem haben ihre bestehen Daten von latin1 auf UTF-8 zu konvertieren.
nö, ich hab schön alles wieder auf ISO umgestellt.Ist mir zuviel Aufwand, denn unserem Server will ich die SuSE 9.1 nicht antun (insbesondere nicht, da das mit dem IMAP nicht richtig funzt) und 2 verschieden codierte Systeme will ich nicht. Schön wäre es gewesen, wenn man die Einstellung beim Installieren / Updaten hätte wählen können! bis denn ... /Frank/
Am Freitag, 30. April 2004 18:53 schrieb Frank Röske:
Am Freitag, 30. April 2004 15:50 schrieb bauni:
Moin,
ich nehme mal an, die meisten, die auf SuSE 9.1 updaten werden das Problem haben ihre bestehen Daten von latin1 auf UTF-8 zu konvertieren.
nö, ich hab schön alles wieder auf ISO umgestellt.
Wie? Per Editor oder geht das auch mit yast? Al
Hallo, Am Fri, 30 Apr 2004, bauni schrieb:
Bleibt nur noch das Problem mit den Dateiinhalten. Ich habe hier mehrere Verzeichnisse mit Text-Dateien und die will ich natürlich nicht per Hand anpassen. Mit "iconv" ist es möglich den Inhalt einer Datei umzuwandeln:
iconv -f latin1 -t utf-8 datei.txt >> xor-datei.txt
Meine Frage: Ist hier jemand gut genug im Shell-Skipting, der ein kleines Skript schreiben kann, das automatisch mit "iconv" alle Dateien (in allen Unterverzeichnissen) konvertiert?
==== UNGETESTET ==== #! /bin/sh RECODE='iconv -f latin1 -t utf-8' IFS=" " ### hier nur den Umbruch eingeben find TESTVERZEICHNIS -iname "*.txt" | while read name do ### dateinamen konvertieren und _utf vor .txt einfuegen newname="`echo \"$name\" | sed 's/\.txt$/_utf\.txt/i' | $RECODE`" ### wenn newname existiert, ueberspringen und weiter mit der ### naechten Datei test -e "$newname" && continue ### Dateiinhalt konvertieren und in $newname ausgeben $RECODE "$name" > "$newname" done ==== Bitte erst verstehen und testen. -dnh -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.
participants (5)
-
Al Bogner
-
bauni
-
David Haller
-
Frank Röske
-
Yann Wissenbach