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