Discussion:
Umlaute in Dateinamen konvertieren ä -> ae
(zu alt für eine Antwort)
Anton Blau
2009-02-11 22:01:15 UTC
Permalink
Hallo Newsgroup,

mein Plone will leider nur utf-8 Dateinamen ohne Umlaute.

Gibt es eine Möglichkeit (Script o. Ä.) Dateinamen automatisiert
umzubenennen, d. h. ä -> ae, ü -> ue, etc.

In google habe ich einen Hinweis auf convmv gefunden. Leider macht mir
aber auch convmv auf den Umlauten kryptische Zeichen.

Danke!

tony
Andreas Leitgeb
2009-02-12 18:01:15 UTC
Permalink
Post by Anton Blau
mein Plone will leider nur utf-8 Dateinamen ohne Umlaute.
Ich kenne Plone nicht, aber "utf-8 Dateinamen ohne Umlaute"
klingt irgendwie widersprüchlich.

Meintest du, dass "Plone" nur Ascii akzeptiert, oder eh
utf-8 (aber du mit "umlauten" nur iso-8859-1(5)) ?
Post by Anton Blau
Gibt es eine Möglichkeit (Script o. Ä.) Dateinamen automatisiert
umzubenennen, d. h. ä -> ae, ü -> ue, etc.
Ich habe mir einmal ein Tcl-script geschrieben, das iso-8859-1(5)
Umlaute ("latin") in Datei- und Verzeichnis-namen nach utf-8
konvertiert. Mit moderatem Aufwand koennte man es sicherlich
auch dahin umschreiben, nach "ae","oe",etc. zu konvertieren,
oder eben so lassen wie es ist für utf-8:
http://www.logic.at/people/avl/stuff/convertNamesToUtf8.tcl

Aufrufen mit einem Pfad (default "."), von dem aus alles drunter
konvertiert werden soll. Mit einer Heuristik versucht es,
versehentliche doppel-konvertierungen zu vermeiden - wenn
z.b. eine einzelne Datei schon einen utf-8 kodierten Namen
hat, aber sowas kann nur heuristisch gehen - also lieber
nicht zweimal für den gleichen Baum aufrufen.

Eventuell die Zeile mit "file rename" mit einem "#" auskommentieren
für einen dry-run.

Garantie gibts natürlich keine - mach sicherheitshalber
ein Backup vorher, wennst nicht eh schon eines hast :-)
oder mach eine Kopie von einem umlaut-lastigen Teilbaum,
und schau, ob's darin richtig arbeitet.

Ich habe damit damals meinen 8bit -> utf-8 Umstieg auf meiner
Daten-partition gemacht (anderswo hatte ich eh keine Umlaut-benamsten
dateien).
Post by Anton Blau
In google habe ich einen Hinweis auf convmv gefunden. Leider macht mir
aber auch convmv auf den Umlauten kryptische Zeichen.
Ist dein System schon utf-8 clean?
Dietrich Schaffer
2009-02-12 18:37:27 UTC
Permalink
Post by Andreas Leitgeb
Post by Anton Blau
mein Plone will leider nur utf-8 Dateinamen ohne Umlaute.
Ich kenne Plone nicht, aber "utf-8 Dateinamen ohne Umlaute"
klingt irgendwie widersprüchlich.
Meintest du, dass "Plone" nur Ascii akzeptiert, oder eh
utf-8 (aber du mit "umlauten" nur iso-8859-1(5)) ?
Post by Anton Blau
Gibt es eine Möglichkeit (Script o. Ä.) Dateinamen automatisiert
umzubenennen, d. h. ä -> ae, ü -> ue, etc.
Ich habe mir einmal ein Tcl-script geschrieben, das iso-8859-1(5)
Umlaute ("latin") in Datei- und Verzeichnis-namen nach utf-8
konvertiert. Mit moderatem Aufwand koennte man es sicherlich
auch dahin umschreiben, nach "ae","oe",etc. zu konvertieren,
http://www.logic.at/people/avl/stuff/convertNamesToUtf8.tcl
Ähnliches sollte eigentlich auch iconv lösen.

Servus,
Dietrich
Andreas Leitgeb
2009-02-12 18:53:35 UTC
Permalink
Post by Dietrich Schaffer
Post by Andreas Leitgeb
Ich habe mir einmal ein Tcl-script geschrieben, das iso-8859-1(5)
Umlaute ("latin") in Datei- und Verzeichnis-namen nach utf-8
konvertiert. Mit moderatem Aufwand koennte man es sicherlich
auch dahin umschreiben, nach "ae","oe",etc. zu konvertieren,
http://www.logic.at/people/avl/stuff/convertNamesToUtf8.tcl
Ähnliches sollte eigentlich auch iconv lösen.
Für eine sehr vage definition von "Ähnliches" :-)

Mein Script konvertiert nur *Namen*, keine Inhalte.
Dietrich Schaffer
2009-02-12 19:30:25 UTC
Permalink
[...]
Post by Andreas Leitgeb
Post by Dietrich Schaffer
Ähnliches sollte eigentlich auch iconv lösen.
Für eine sehr vage definition von "Ähnliches" :-)
Mein Script konvertiert nur *Namen*, keine Inhalte.
*Patsch* Das ist korrekt - wie kam ich nur darauf ...

Servus,
Dietrich
Christoph 'Mehdorn' Weber
2009-02-24 18:42:43 UTC
Permalink
Hallo!
Post by Dietrich Schaffer
Post by Andreas Leitgeb
Post by Dietrich Schaffer
Ähnliches sollte eigentlich auch iconv lösen.
Für eine sehr vage definition von "Ähnliches" :-)
Mein Script konvertiert nur *Namen*, keine Inhalte.
*Patsch* Das ist korrekt - wie kam ich nur darauf ...
Wobei, so verkehrt ist das auch nicht. Man könnte das Verfahren
beispielsweise mit qmv aus den renameutils kombinieren. Bei qmv
wird eine Dateiliste, die man ls-artig angeben kann, in einen
Editor geladen und kann dort bequem geändert werden. Beim
Speichern versucht qmv die Dateien entsprechend umzubenennen.

In dem Fall könnte 'qmv -f do *' eine Variante sein. Und im
Editor läßt man dann durch iconv filtern oder benutzt etwas
eingebautes. Bzw. setzt EDITOR auf einen passenden iconv-Aufruf.

Christoph
--
Koennen die Amis ueberhaupt noch ein
funktionsfaehiges Raumfahrzeug bauen? --
"noch"?!
(Juergen P. Meier, Dietz Proepper)
Michael Prokop
2009-02-13 14:50:05 UTC
Permalink
Post by Andreas Leitgeb
Post by Dietrich Schaffer
Post by Andreas Leitgeb
Ich habe mir einmal ein Tcl-script geschrieben, das iso-8859-1(5)
Umlaute ("latin") in Datei- und Verzeichnis-namen nach utf-8
konvertiert. Mit moderatem Aufwand koennte man es sicherlich
auch dahin umschreiben, nach "ae","oe",etc. zu konvertieren,
http://www.logic.at/people/avl/stuff/convertNamesToUtf8.tcl
Ähnliches sollte eigentlich auch iconv lösen.
Für eine sehr vage definition von "Ähnliches" :-)
Mein Script konvertiert nur *Namen*, keine Inhalte.
Package: convmv
Description: filename encoding conversion tool

JFYI && mfg,
-mika-
--
,'"`. http://michael-prokop.at/
( grml.org -» Linux Live-CD for texttool-users and sysadmins
`._,' http://grml.org/
Andreas Leitgeb
2009-02-13 17:02:28 UTC
Permalink
Post by Michael Prokop
Post by Andreas Leitgeb
Post by Dietrich Schaffer
Post by Andreas Leitgeb
Ich habe mir einmal ein Tcl-script geschrieben, das iso-8859-1(5)
Umlaute ("latin") in Datei- und Verzeichnis-namen nach utf-8
konvertiert. Mit moderatem Aufwand koennte man es sicherlich
auch dahin umschreiben, nach "ae","oe",etc. zu konvertieren,
http://www.logic.at/people/avl/stuff/convertNamesToUtf8.tcl
Ähnliches sollte eigentlich auch iconv lösen.
Für eine sehr vage definition von "Ähnliches" :-)
Mein Script konvertiert nur *Namen*, keine Inhalte.
Package: convmv
Description: filename encoding conversion tool
Das triffts schon besser. :-)
Hätte ich damals convmv gekannt...

PS: Dass ich mal in einer Manpage zu einem tool eine Erklärung
zur Historie des i-punkts finden würde, damit hätte ich
auch nicht gerechnet :-)
Anton Blau
2009-02-14 08:13:06 UTC
Permalink
Post by Michael Prokop
Package: convmv
Description: filename encoding conversion tool
Hallo Michael,

mein Problem ist, dass ich Daten, eines WinXP-Clients nach Zope/Plone
(FTP) übertragen möchte.

In der derzeitigen Form klappt die Übertragung sämtlicher Dateien oder
Unterverzeichnisse nicht, die Umaute enthalten (Fehlermeldung: failed:
409 Conflict).

In der Doku von Zope/Plone steht, dass die Dateinamen UTF-8 Format haben
müssen.

http://zope.dokumentation.hu-berlin.de/plonehandbuch/import

Ein convmv -f cp850 -t utf-8 Geschäft/ ergibt:

Starting a dry run without changes...
mv "./Geschäft" "./Geschõft"

Also auch nicht lesbar.

Händisch habe ich die Übertragung bisher hinbekommen, wenn ich alle
Umlaute manuell umstelle, d. h.

Geschäft -> Geschaeft

Nachdem es sich um sehr viele Dateien handelt, würde ich das gerne
automatisiert machen.

Hat dazu jemand eine Idee?

Danke!


Tony
Andreas Leitgeb
2009-02-15 12:52:17 UTC
Permalink
Post by Anton Blau
In der Doku von Zope/Plone steht, dass die Dateinamen UTF-8 Format haben
müssen.
Starting a dry run without changes...
mv "./Geschäft" "./Geschõft"
Also auch nicht lesbar.
Doch. Scheinbar ist dein Rechner noch nicht auf utf-8 umgestellt,
daher zeigt er dir die utf-8 codierten neuen Namen faslch an,
aber die Konvertierung ist schon richtig.

Wenn du uns nicht glaubst, mach halt eine Kopie des Verzeichnisbaums,
lass den convmv auf der Kopie werken (mit optionen -r --notest) und
plonisiere die konvertierte Kopie.
Alfred JILKA
2009-02-14 22:00:14 UTC
Permalink
So als erste Möglichkeit fällt mir da "tr" ein. Ein script müsste ich mir
auch erst überlegen.
Eine schnelle Idee ist, das Verzeichnis in eine Datei zu schreiben, mit tr
die Umlaute zu konvertieren (output in eine 2.Datei)
und die dann in einer 3. Datei zu einem script mit mv original umbenannt
zu setzen.
Hilft das ? Alf
Post by Anton Blau
Hallo Newsgroup,
mein Plone will leider nur utf-8 Dateinamen ohne Umlaute.
Gibt es eine Möglichkeit (Script o. Ä.) Dateinamen automatisiert
umzubenennen, d. h. ä -> ae, ü -> ue, etc.
In google habe ich einen Hinweis auf convmv gefunden. Leider macht mir
aber auch convmv auf den Umlauten kryptische Zeichen.
Danke!
tony
--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/
wisdomkiller & pain
2009-02-14 22:41:02 UTC
Permalink
Post by Anton Blau
Hallo Newsgroup,
mein Plone will leider nur utf-8 Dateinamen ohne Umlaute.
Gibt es eine Möglichkeit (Script o. Ä.) Dateinamen automatisiert
umzubenennen, d. h. ä -> ae, ü -> ue, etc.
In google habe ich einen Hinweis auf convmv gefunden. Leider macht mir
aber auch convmv auf den Umlauten kryptische Zeichen.
Danke!
detox ist da ein nettes Utility. Aber wozu UTF-8 überhaupt wenn ohnehin ohne
Umlaute, da tät es doch ASCII auch?
Anton Blau
2009-02-15 08:39:48 UTC
Permalink
Vielen Dank für die Tipps.

Ich habe nun das gewünschte Script.

Tony
Markus Raab
2009-02-15 20:55:57 UTC
Permalink
Post by wisdomkiller & pain
detox ist da ein nettes Utility. Aber wozu UTF-8 überhaupt wenn ohnehin
ohne Umlaute, da tät es doch ASCII auch?
Die Darstellung von UTF-8 mit echten ASCII Zeichen und ASCII ist sowieso
identisch.

mfg Markus
Raphael Wegmann
2009-02-17 21:52:41 UTC
Permalink
Post by Anton Blau
Gibt es eine Möglichkeit (Script o. Ä.) Dateinamen automatisiert
umzubenennen, d. h. ä -> ae, ü -> ue, etc.
#!/bin/sh
for name in *; do mv $name \
`echo $name | sed "s/ä/ae/g; s/ü/ue/g; s/ö/oe/g;"`;
done
--
Raphael
Loading...