MP3 sortieren auf der shell
Moin Liste. Ich nehme seit geraumer Zeit Internetradio auf. Dadurch hat sich nun eine betraechtliche Menge an MP3`s angesammelt. In der Filestruktur bildet sich dies wie folgt ab: ####################### ingo@ns1:/media/Musik> l insgesamt 164 drwxr-xr-x 11 ingo users 664 20. Nov 06:17 ./ drwxr-xr-x 3 root root 4096 19. Nov 22:16 ../ drwxr-xr-x 3 ingo users 37928 21. Nov 06:40 (((EBM Radio))) strange music 4 strange people/ drwxr-xr-x 3 ingo users 18848 20. Nov 06:15 GothVille Radio - [Dark music for people dressed in black]/ drwxr-xr-x 3 ingo users 58552 21. Nov 06:43 Morituri te salutant - Das Radio mit der schwarzen Seele - The Best of drwxr-xr-x 3 ingo users 30536 21. Nov 06:42 R1Live - DAS Darkwave und Gothic Radio- Immer die aktuellsten drwxr-xr-x 3 ingo users 816 20. Nov 00:00 R1live-Livesendung mit Dianira - DAS Darkwave und Gothic Radio drwxr-xr-x 3 ingo users 18128 21. Nov 06:39 Radio Dunkle Welle/ ######################## In den Ordner befinden sich reichlich MP3`s mit anstaendigen ID3-Tags. Nun möchte ich gerne in '/data/MP3' die Songs einsortieren. '/data/MP3' ist noch leer und sollte nachher so aussehen: #################### data/ MP3/ A/ And One/ And One - Panzermensch.mp3 B/ Bela B/ Bela B - Nimm die Gitarre runter.mp3 ...u.s.w...... #################### Also aus den ID3-Tags lesen, und diese verarbeiten zu Verzeichnissen und Dateinamen. Doch wie stelle ich das am besten auf der shell her? Für Gedankenhilfen waehre ich sehr dankbar. Gruss Ingo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Mittwoch 21 November 2007 06:52:17, you (Ingo Tschutter) wrote:
#################### data/ MP3/ A/ And One/ And One - Panzermensch.mp3
B/ Bela B/ Bela B - Nimm die Gitarre runter.mp3
...u.s.w...... ####################
Also aus den ID3-Tags lesen, und diese verarbeiten zu Verzeichnissen und Dateinamen. Doch wie stelle ich das am besten auf der shell her?
Für Gedankenhilfen waehre ich sehr dankbar.
Mit einem Tool wie id3info (Paket id3lib-examples) kann man relativ einfach die id3-Tags auslesen und in einem Skript verwerten. Z.B. kannst Du in einer Schleife über all Deine MP3s sowas in der Art machen.. (vorher ein export TARGETDIR="/data/MP3/") ... export ARTIST="$(id3info "$FILE" | grep '^=== TPE1'|cut -d\: -f2|cut -b2- )" export A_START="$(echo $ARTIST |cut -b1|tr [:lower:] [:upper:])" export TITLE="$(id3info "$FILE" | grep '^=== TIT2'|cut -d\: -f2|cut -b2- )" export ALBUM="$(id3info "$FILE" | grep '^=== TALB'|cut -d\: -f2|cut -b2- )" export F_EXT="${FILE##*\.}" mkdir -p "${TARGETDIR}/${A_START}/${ARTIST}" cp -v "$FILE" "${TARGETDIR}/${A_START}/${ARTIST}/${ARTIST}-${TITLE}.${F_EXT}" ... wenn jeweils in $FILE das aktuelle MP3 ist, bekommst du so Interpret, Anfangsbuchstabe des Interpreten, Liedtitel, Album und die Dateierweiterung der ursprünglichen Datei. Damit kannst in dem copy Befehl sehr flexibel einstellen, wie Du Deine Zieldatei benannt haben willst oder (bei dem mkdir-Befehl) wohin Du sie haben willst. Vielleicht hilft Dir das ja weiter :-) Gruß, Frank -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Frank Seidel schrieb:
On Mittwoch 21 November 2007 06:52:17, you (Ingo Tschutter) wrote:
#################### data/ MP3/ A/ And One/ And One - Panzermensch.mp3
B/ Bela B/ Bela B - Nimm die Gitarre runter.mp3
...u.s.w...... ####################
Also aus den ID3-Tags lesen, und diese verarbeiten zu Verzeichnissen und Dateinamen. Doch wie stelle ich das am besten auf der shell her?
Für Gedankenhilfen waehre ich sehr dankbar.
Mit einem Tool wie id3info (Paket id3lib-examples) kann man relativ einfach die id3-Tags auslesen und in einem Skript verwerten.
Z.B. kannst Du in einer Schleife über all Deine MP3s sowas in der Art machen..
(vorher ein export TARGETDIR="/data/MP3/") ... export ARTIST="$(id3info "$FILE" | grep '^=== TPE1'|cut -d\: -f2|cut -b2- )" export A_START="$(echo $ARTIST |cut -b1|tr [:lower:] [:upper:])" export TITLE="$(id3info "$FILE" | grep '^=== TIT2'|cut -d\: -f2|cut -b2- )" export ALBUM="$(id3info "$FILE" | grep '^=== TALB'|cut -d\: -f2|cut -b2- )" export F_EXT="${FILE##*\.}" mkdir -p "${TARGETDIR}/${A_START}/${ARTIST}" cp -v "$FILE" "${TARGETDIR}/${A_START}/${ARTIST}/${ARTIST}-${TITLE}.${F_EXT}" ...
wenn jeweils in $FILE das aktuelle MP3 ist, bekommst du so Interpret, Anfangsbuchstabe des Interpreten, Liedtitel, Album und die Dateierweiterung der ursprünglichen Datei. Damit kannst in dem copy Befehl sehr flexibel einstellen, wie Du Deine Zieldatei benannt haben willst oder (bei dem mkdir-Befehl) wohin Du sie haben willst.
Vielleicht hilft Dir das ja weiter :-)
Gruß, Frank
id3info war genau das, was ich suchte. Nun klappt auch alles. Vielen Dank Ingo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 21. November 2007 06:52 schrieb Ingo Tschutter:
Moin Liste.
Ich nehme seit geraumer Zeit Internetradio auf. Dadurch hat sich nun eine betraechtliche Menge an MP3`s angesammelt. In der Filestruktur bildet sich dies wie folgt ab:
In den Ordner befinden sich reichlich MP3`s mit anstaendigen ID3-Tags. Nun möchte ich gerne in '/data/MP3' die Songs einsortieren. '/data/MP3' ist noch leer und sollte nachher so aussehen:
...
Also aus den ID3-Tags lesen, und diese verarbeiten zu Verzeichnissen und Dateinamen. Doch wie stelle ich das am besten auf der shell her?
Für Gedankenhilfen waehre ich sehr dankbar.
Da gab es mal einen c't-Artikel mit genau dieser Aufgabestellung als Beispiel für den Umgang mit der Kommandozeile, sollte sich auf der c't-Seite finden lassen. Gruß Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Frank Seidel
-
Ingo Tschutter
-
Martin Hofius