Linux Bash script um mcrec Dateien zu sortieren

Digital Recording
masque
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 15. November 2002, 18:25

Linux Bash script um mcrec Dateien zu sortieren

Beitrag von masque »

Hallo zusammen,
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

fraso
Interessierter
Interessierter
Beiträge: 35
Registriert: Mittwoch 10. September 2003, 09:02

Beitrag von fraso »

Superklasse...
... aber bei mir läuft es leider nicht :( heul.

Ich bin Linux anfänger - weißt Du warum es nicht geht ???

Script markiert und in KWrite eingefügt, dann rechte erteilt und
dann noch den dateinamen auf .sh geändert....

Danke,
FraSo
masque
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 15. November 2002, 18:25

Beitrag von masque »

Hi fraso,
hmmm... könnten die 2 Zeilen sein die beim posten leider umgebrochen wurden:

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
]'`


achte mal drauf, dass artdir= ... und albdir=... jeweils eine Zeile ist.
Oder Probiers mal mit

Code: Alles auswählen


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]'` 
Gruß
masque
masque
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 15. November 2002, 18:25

Beitrag von masque »

Hi,
ok ich habe vergessen zu sagen, dass man das Programm "id3" benötigt.
Offensichtlich gibts das für SuSe nicht als RPM.
Ich werde die Scripts so umbauen, dass man ein anderes id3 Programm (z.B. id3ed) benutzen kann und werde den Download zur geänderten Version dann posten.

Gruß
masque
masque
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 15. November 2002, 18:25

Beitrag von masque »

Hi zusammen,
die versprochene Version des Scripts die mit id3ed statt id3 arbeitet steht zum downloaden bereit.

Version mit id3
http://www.unpopulaer.de/mcrec/mpsort

Version mit id3ed
http://www.unpopulaer.de/mcrec/mpsort_id3ed

Gruß
masque