In diesem Forum fragte jemand, wie er einfach aus Datei- und Verzeichnisnamen die Umlaute entfernen kann bzw aus den Umlauten äöü und dem ß ae,oe,ue und ss erzeugen kann.  Ist ein nettes Problem das ich dort in dem Forum mit einem kleinen Python Script gelöst habe. Ich habe dann mal eine wesentlich erweitere Version des Scripts erstellt:
 
    Ersetzt alle deutschen Umlaute ä,ö und ü sowie ß in Dateinamen und Verzeichnissen durch ae, oe und ue sowie ss
    Optional können alle Zeichen, die nicht Buchstaben oder Zahlen sind durch ein anderes Zeichen ersetzt werden.
   
    Optionen:
    -h: Anzeige des Hilfetextes
    -a: Änderungsmodus: Ohne diesen Parameter werden keine Verzeichnisse und Dateien umbenannt
        sondern nur Meldungen rausgeschrieben was getan würde wenn das Flag angegeben wird
    -v: Ausführlicher Modus: Es werden Meldungen geschrieben, die es erlauben zu verfolgen welche Verzeichnisse gerade bearbeitet werden
    -f: Überschreibmodus: Falls die umbenannten Verzeichnisse oder Dateien existieren werden
        sie überschrieben. Ohne dieses Flag wird eine Fehlermeldung geschrieben und nicht überschrieben.
    -d: Angabe des StartVerzeichnisses welches rekursive bearbeitet werden soll. Falls es nicht angegeben wird ist es das aktuelle Verzeichnis
    -z: Alle Zeichen im Namen die nicht Buchstaben oder Zahlen sind werden durch diesen Buchstaben ersetzt

 

Wer selbiges Problem hat kann es hier runterladen .
 
Kommentare   
#6 themmm 2016-07-25 01:37
Hi framp,

gut zu wissen. Werde mal sehen was sich besser in meinen Workflow einbinden lässt.

Grüße
themmm
+1 #5 framp 2016-07-24 22:42
Moin themmm,

freut mich das es noch Gefallen findet. Mittlerweile habe ich rausgefunden, dass es auch mit Standard Linuxmitteln geht und kein besondere Programm dafür nötig ist :-*

find -name "*[äöüÄÖÜß]*" -exec rename 's/ä/ae/g;s/ü/ue/g;s/ß/ss/g;s/Ä/Ae/g;s/Ü/Ue/g;s/Ö/Oe/g;s/ö/oe/g' {} \;

Das kann man natürlich noch beliebig erweitern :-)

Cu framp
#4 themmm 2016-07-24 22:05
Sehr cooles Script!

Genau soetwas habe ich gesucht. Danke dafür!

MFG
themmm
#3 framp 2013-03-30 18:02
Habe heute das Script erweitert so dass beide Wünsche von Heinz und Hage erfüllt sind. Einfach -z _ als Parameter mitgeben und dann werden alle Zeichen, die kein Buchstabe oder Ziffer sind, durch den Unterstrich ersetzt. Dazu gehört natürlich auch das Leerzeichen.

Wer sonstige Zeichen speziell ersetzen will muss nur die folgende Zeile im Programm entsprechend ändern:

reps = {'ä':'ae', 'ö':'oe', 'ü':'ue', 'Ä':'AE', 'Ö':'OE', 'Ü':'UE', 'ß':'ss'}

z.B. durch

reps = {'ä':'ae', 'ö':'oe', 'ü':'ue', 'Ä':'AE', 'Ö':'OE', 'Ü':'UE', 'ß':'ss', ' ':'%'}

Dann werden die Leerzeichen durch das % Zeichen ersetzt.
#2 Hage 2012-07-20 02:36
Hallo,
einfach toll! Einfach erweiterbar! Ist sogar mir als Python-Legastheniker gelungen noch das Ersetzen von Leerzeichen durch Untersrich einzufügen.

Vielen Dank :-) und viele Grüße
Hage
#1 heinz 2011-09-28 12:36
Hi,
eine schöne Ergänzung wäre dazu noch die Option, daß im Ordner/Filename alles ersetzt wird , was nicht "a-z/A-Z/0-9" ist, mit z.B. "_".
Gruß

Heinz