Umlaute in Dateinamen ersetzen

Man, das heißt zumindest ich, bemühe mich immer sie zu vermeiden, wo es nur irgendwie möglich ist. Eigentlich sollte es im Zeitalter von Unicode damit keine Probleme mehr geben, die Realität sieht jedoch anders aus.

Ich habe daher nun beschlossen, nachdem es wieder Probleme mit dem Öffnen und Sichern (Backup) einiger Dateien gab (Material aus einem Seminar) via Skript alle deutschen Sonderzeichen aus Dateinamen zu eliminieren und so zumindest im aktuellen Datenbestand und im Archiv das Problem für eine Weile wieder loszuwerden.

Ansatz dazu 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' {} \;

Sowie folgendes Skript das ich gefunden habe:

#!/bin/bash

#Ordner
find -depth -type d -execdir rename -v 's/Ä/Ae/g;
s/Ö/Oe/g;
s/Ü/ue/g;
s/ä/ae/g;
s/à/a/g;
s/è/e/g;
s/é/e/g;
s/ö/oe/g;
s/ü/ue/g;
s/@/at/g;
s/\"/-/g;
s/\[/-/g;
s/\]/-/g;
s/\302\201/ue/g;
s/\302\204/ae/g;
s/\302\224/oe/g;
s/\201/ue/g;
s/\224/oe/g;
s/\204/ae/g;
s/\232/Ue/g;
s/\207/./g;
s/\200/./g;
s/�/ae/g;
s/�/oe/g;
s/ /_/g;
s/,/_/g;
s/\)/-/g;
s/\(/-/g;
s/\:/-/g;
s/\&/und/g;
s/\+/und/g;
s/\x27/_/g;
' '{}' \;

#Datei
find . -type f -exec rename -v 's/Ä/Ae/g;
s/Ö/Oe/g;
s/Ü/ue/g;
s/ä/ae/g;
s/à/a/g;
s/è/e/g;
s/é/e/g;
s/ö/oe/g;
s/ü/ue/g;
s/@/at/g;
s/\"/-/g;
s/\[/-/g;
s/\]/-/g;
s/\302\201/ue/g;
s/\302\204/ae/g;
s/\302\224/oe/g;
s/\201/ue/g;
s/\224/oe/g;
s/\204/ae/g;
s/\232/Ue/g;
s/\207/./g;
s/\200/./g;
s/�/ae/g;
s/�/oe/g;
s/ /_/g;
s/,/_/g;
s/\)/-/g;
s/\(/-/g;
s/\:/-/g;
s/\&/und/g;
s/\+/und/g;
s/\x27/_/g;
' '{}' \;

Sowie mit conmv einmal anschauen. Das wird vermutlich jedoch erst Dienstag der Fall sein. Vorher lasse ich mein System erstmal eine komplette Sicherung machen, d.h. die nächsten 24h bin ich in der Arbeit auf meinem Laptop beschränkt.

Unter Windows gibt es dafür wohl ein Tool Namens „Ant renamer“ und hier  dazu eine Anleitung. Getestet habe ich es jedoch nicht.

Dieser Beitrag wurde unter Computer, Linux veröffentlicht. Setze ein Lesezeichen auf den Permalink.