PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scriptübung



geronet
29-11-2002, 15:48
Hallo Leute,
ich könnte es zwar selber schreiben habe aber gerade wenig Zeit.

Die Aufgabe:

In einem Verzeichnis sind 7004 Dateien, alles mp3's, in diesem Format:

<Interpret> - <Titel> [<Album / CD>].mp3
z.B.:
Beam & Yanou - The Free Fall [Dream Dance Vol 19 Cd 1].mp3
oder
B-Boy Electric - Tainted Love [Club Sounds Vol. 7 (Cd 1)].mp3

Jetzt brauche ich ein Script das automatisch folgendes erledigt:

[list=a]
Wenn der Dateiname ohne []-Klammern ist die Datei in Ruhe lassen
Ein neues Verzeichnis erstellen (falls noch nicht vorhanden) mit dem Namen des in []-Klammern angegebenem Album
Die Datei dort hineinschieben
und umbenennen dass der []-Teil herausgeschnitten wird, also dass die Datei dann so aussieht:
./Club Sounds Vol. 7 (Cd 1)/B-Boy Electric - Tainted Love.mp3
[/list=a]

Viel Spass mit sed&awk :D

Grüsse, Stefan

fork
29-11-2002, 16:29
perl -e 'foreach(<*>){/^.*\[([^]]+)\].*$/&&mkdir("$1");system("mv \"".$_."\" \"".$1."\"")}'

Viel Glück

Gruß
Tobias

geronet
29-11-2002, 17:16
Hmm funktioniert aber nicht :D

Siehe die Ausgabe, Abba hat nichts mit Metallica zu tun (Abba hatte zum Teil keine []-Klammern) und die []-Klammern wurden nicht weggeschnitten.

fork
29-11-2002, 18:38
Ein zweiter Test, wenn deine Sammlung noch existiert. ;-)
perl -e 'foreach(<*>){$f=$_;/^(.*)\[([^]]+)\].*$/&&(mkdir("$2")||(-d "$2"))&&system(qq(mv "$f" "$2/$1.mp3"))}'

geronet
01-12-2002, 10:15
Nur noch eins:

Abaddon Of Venom - Whiplash .mp3

vor dem .mp3 ist ein Leerzeichen, das müsste noch weg :D

fork
01-12-2002, 15:18
perl -e 'foreach(<*>){$f=$_;/^(.*)\s+\[([^]]+)\].*$/&&(mkdir("$2")||(-d "$2"))&&system(qq(mv "$f" "$2/$1.mp3"))}'

Das kost' jetzt aber langsam ... ;-)