Gegeben sind MP3 Daten, mit sehr sinnigen Dateinamen wie:
track_01.mp3
track_02.mp3
track_03.mp3
[...]
Glücklicherweise sind die ID3 Tags gesetzt. Was liegt also näher, als die Dateien mit Hilfe von id3info umzubennen. Nach einigem fummeln und probieren, habe ich folgendes zusammen gesetzt:
for i in *.mp3;
do mv $i "${*##}`id3info $i | egrep '(TPE1|TIT2)' | cut -d: -f 2 | tr -d [:cntrl:] | cut --complement -b 1 \
|sed "s/ /_/g"`.mp3";
done
Es gibt sicher weitaus bessere Wege, das mit der Bash zu lösen, aber dennoch bin ich Stolz auf diese Lösung. Sozusagen quick and really dirty
Das Einzige Problem, was ich jetzt noch nicht lösen konnte, ist es “find” einzubauen, sodass ich ihn auf einen Ordner anwenden kann. Wenn ich es mit … :
for i in `find /order/mit/mp3 -name "*.mp3"`
do mv $i "${*##}`id3info $i | egrep '(TPE1|TIT2)' | cut -d: -f 2 | tr -d [:cntrl:] | cut --complement -b 1 \
|sed "s/ /_/g"`.mp3";
done
… probiere, dann verschiebt er die Dateien in den Arbeitsordner (pwd).
In ein paar Monaten, löse ich solche Aufgaben in Perl
Bitte kommt nicht auf die Idee, eine Perlösung hier rein zustellen. Das will ich selbst lösen
Deine IP ist:
38.107.179.206

1 Kommentar
Ich hab sowas schon mal in Perl (und es ist sogar noch lesbar) aber du willst ja keine fertige Lösung (hätte ich jetzt eh nicht hier, liegt nämlich zuhause) …