Subdirs und Dateien umbenennen/verschieben
Sven Kalinowski
onlineinfos at gmx.net
Thu Aug 4 10:27:48 CEST 2005
Am Mittwoch, 3. August 2005 20:38 schrieb Siegfried Peter:
> Bin langsam am verzweifeln.
> Meine Kinder legen auf dem Server in ihren homedirs in einem
> bestimmten dir subdirs mit *.mp3's für ihre MP3Player ab.
> Die Namen enthalten leider einige Schweinerein (Unlaute,
> Leerzeichen usw) gibt es eine Möglichkeit alle Namen in kleinschreibung
> umzuwandeln und die Schweinereien zu entfernen?
>
> Ich habe schon folgendes Script probiert:
>
> #!/bin/bash
> for i in *; do
> mv "$i" $(echo "$i" | sed 's/ - /-/g');
> mv "$i" $(echo "$i" | sed 's/@/at/g');
> mv "$i" $(echo "$i" | tr " " '_');
> mv "$i" $(echo "$i" | tr "A-Z" 'a-z');
> mv "$i" $(echo "$i" | sed 's/Ä/ae/g');
> mv "$i" $(echo "$i" | sed 's/ä/ae/g');
> mv "$i" $(echo "$i" | sed 's/Ö/oe/g');
> mv "$i" $(echo "$i" | sed 's/ö/oe/g');
> mv "$i" $(echo "$i" | sed 's/Ü/ue/g');
> mv "$i" $(echo "$i" | sed 's/ü/ue/g');
> mv "$i" $(echo "$i" | sed 's/ß/ss/g');
> done
> exit 0
>
> leider arbeitet es nicht rekursiv.
> Kann mir jemand helfen?
>
> Danke
>
> Siegfried Peter
Hallo Siegfried,
zum rekursiven Arbeiten benutze ich immer
find
find /home/xyz/mp3 -type f
gibt eine Liste der Dateien, allerdings mit den Verzeichnissen.
die Verzeichnisse müssen dann durch Stringbearbeitung / reguläre Ausdrücke
entfernt werden.
find /home/xyz/mp3 -type f -exec mv {} (hier der ausdruck der nur das
Verzeichniss von {} ausgibt)(hier dann der geänderte Dateinamevon {}) \;
Bei den regulären Ausdrücken kann ich Dir im Moment leider nicht helfen. ich
weiss aber dass es geht.
ich hoffe der Ansatz hilft weiter ...
Grüsse
Sven Kalinowski
--
jeden 2.Mittwoch Treffen in Herford der GnuLugHF
More information about the Linux
mailing list