ich habe mir ein kleines Script gebastelt, das die von mcrec aufgezeichneten mp2/mp3 Dateien sortiert. Das Script erzeugt pro Artist und darunter pro Album ein Unterverzeichnis und schiebt die Dateien darin hinein. Der Namen des Artist und des Albums wird aus dem id3 Tag ausgelesen.
Evtl. kann es ja noch jemand gebrauchen
Gruß
masque
Code: Alles auswählen
#!/bin/bash
# parameter pruefen
if [ ! $1 ]; then
        echo "usage: mpsort <source dir> <optional destination dir>"
        echo " "
        echo "example: mpsort ./ "
        echo "example: mpsort ./ /mymusik/mp3/"
        echo "example: mpsort /finished/hitlist/ /mymusik/mp3/"
        echo " "
        exit 1
fi
# Pruefen ob es im sourcedir mp2 oder mp3 dateien gibt
if [ -z "`ls $1*.mp[23] 2> /dev/null`" ]; then
        echo "Keine mp2 oder mp3 Dateien gefunden";
        exit 1;
fi
# pruefen ob das destination dir existiert
predir=$2
if [ ! -d $predir ];then
        echo "Das Zielverzeichnis existiert nicht";
        exit 1;
fi
for tmp0 in $1/*mp[23]
do
  # hol die id3 tags aus dem mp2-3 file und merk sie dir
  #
  # Array id3
  # 0 : Filename
  # 1 : Titel
  # 2 : Artist
  # 3 : Album
  # 4 : Year
  # 5 : Genre
  # 6 : Track
  # 7 : Comment
  #
  let "i=0"
  for id3tag in Filename Title Artist Album Year Genre Track Comment
  do
   id3[i]="`id3 -l -R "${tmp0}" | grep "$id3tag:" | awk -F': '  '{print $2}'`"
   let ++i
  done 
 # entferne ungueltige zeichen und setze alles auf klein buchstaben
  artdir=`echo "${id3[2]}" | sed s/\ *$//g | sed s/'\*'//g | sed s/'\?'//g | sed s/'\/'/-/g | sed s/'\"'//g | tr '[A-Z]' '[a-z
]' | awk -F',' '{print $1}'`
  albdir=`echo "${id3[3]}" | sed s/\ *$//g | sed s/'\*'//g | sed s/'\?'//g | sed s/'\/'/-/g | sed s/'\"'//g | tr '[A-Z]' '[a-z
]'`
  # erzeuge das verzeichnis des artists
  if [ ! -d "$predir$artdir" ]; then
    mkdir "$predir$artdir";
  fi
  # erzeuge das verzeichnis des albums
  if [ ! -d "$predir$artdir/$albdir" ]; then
    mkdir "$predir$artdir/$albdir";
  fi
  # verschiebe die datei in das verzeichnis
  mv "${tmp0}" "$predir$artdir/$albdir";
done


 heul.
 heul.