Donnerstag, 22. Juli 2010

Dateinamen bereinigen

Meine Problemstellung gerade: Diverse Dateien in diversen Unterverzeichnissen haben "komische" Dateinamen und lassen sich unter Windows nicht entpacken...

Mein quick-Fix: Dateinamen bereinigen (natürlich unter Linux...) und alle nicht Standard Zeichen ersetzen.
In diesem Fall war es für mich ausreichend Buchstaben, Zahlen und den Punkt zu lassen, der Rest wurde durch Unterstriche ersetzt

Dafür verwendete ich folgendes Skript:
find -depth -name "* *" | while read file; do
   filePath="$(dirname "${file}")"
   oldFileName="$(basename "${file}")"
   newFileName=${oldFileName//[^a-zA-Z0-9\.]/_}
   mv "${filePath}"/"${oldFileName}" "${filePath}"/"${newFileName}"
done

Das ganze hat nur noch ein kleines Problem: Es funktioniert nicht für Dateinamen mit Leerzeichen am Ende des Dateinamens - hier muss das Skript verbessert werden, oder manuell nachgearbeitet.

Keine Kommentare:

Kommentar veröffentlichen