Page 1 of 1

Bash Script zum iterativen Umbenennen von Dateien und Verzeichnissen

Posted: 13. Mar 2007 16:43
by tla-wedel
Hallo,
ich will ein bash-Script schreiben, mit dem ich iterativ durch einen Verzeichnisbaum marschiere und
aus allen Verzeichnis- _und_ Dateinamen Sonder-, Leer- und "sonstige-Windoof"-Zeichen ersetzen kann.

Damit bekäme ich die Dateien eines Verzeichnisses in eine Zeile

for x in *.txt; do echo -n $x; echo -ne '\000'; done | cat


Wie bekomme ich da jetzt die Sonderzeichen raus?
Wie komme ich an die Verzeichnisse?
Bin ich der Erste, der dieses Problem hat? Im Forum habe ich nichts entsprechendes gefunden.

Freue mich auf Resonanz.

Tobi

Posted: 15. Mar 2007 17:47
by komsomolze
Hallo,

du könntest ja erstmal die betreffenden überblicken, mit einem regex der normale Zeichen ausschliesst

Code: Select all

find ... -regex ".*[^a-zA-Z0-9-_\.].*"
(als Idee)

Wenn dann nur eine handvoll Sonderzeichen übrigbleibt, die vielleicht einzeln mit 'rename' umschreiben

Code: Select all

find ... -regex ... -exec rename ...{} \;
'rename' macht auch regexe.