Archiv verlassen und diese Seite im Standarddesign anzeigen : Auslesen eines Verzeichnissbaums
Hi
Ich habe noch nicht so viel Erfahrung mit Bashscripten und habe folgendes Problem:
Meine ganze Musiksammlung ist so strukturiert:
/musik/musiksammlung/interpret/album/titel.mp3
Nun würde ich gerne mittels Shellscript 3 textdateien erstellen, die jeweils eine alphabetisch sortierte Listeder aller interpreten, aller Alben und aller Titel enthalten.
Für die interpreten sieht es bisher so aus:
cd /musik/musiksammlung/
ls -l > ../interpreten.txt
Wäre sehr dankbar für Hinweise wie ich den Rest angehen soll.
MFG Loi
lordlamer
21.08.2005, 14:54
hi
so ausm bauch raus und ohne eine möglichkeit des prüfens könnte das vielleicht mit find gehen und awk dann.
mit find /pfad/zum/verzeichnis listet er dir alles auf. das müsstest du dann nur zurechtstutzen vielleicht mit awk oder so.
vielleicht hilft das ja
mfg frank
Lord Kefir
21.08.2005, 15:56
Ich bin eigentlich 'ne ziemliche Bash-Graupe. Aber vielleicht mal so als kleiner Ansatz:
Ich würde erst einmal 'nen Script schreiben, dass die Dateien auswertet. Das geht mit dem Programm "mp3info" super einfach - z.B. so:
ARTIST=`mp3info -p "%a" $1`
Keine Ahnung wo ich das gefunden habe - einfach mal googeln ;)
Mit "find" kannst'e dann alle Files durch Dein Script jagen:
find /pfad/ -t f -iname "*.mp3" -exec script.sh {} \;
Mfg, Lord Kefir
Hi
Danke für die Tipps, aber habe es nun doch noch geschafft, wenn auch etwas anders...
Dachte immer, es müsste doch mit 2 verschachtelten for Schleifen gehen...
habe endlich die richtige Syntax gefunden...
COLLUMS=200
rm /musik/interpreten.txt;
rm /musik/alben.txt;
rm /musik/titel.txt;
cd /musik/musiksammlung
################################################
echo "###############" >> /musik/interpreten.txt;
echo "# Interpreten #" >> /musik/interpreten.txt;
echo "###############" >> /musik/interpreten.txt;
echo "`ls`" >> /musik/interpreten.txt;
################################################
echo "#########" >> /musik/alben.txt;
echo "# Alben #" >> /musik/alben.txt;
echo "#########" >> /musik/alben.txt;
echo "==============================================" >> /musik/alben.txt;
echo "#########" >> /musik/titel.txt;
echo "# Titel #" >> /musik/titel.txt;
echo "#########" >> /musik/titel.txt;
echo "==============================================" >> /musik/titel.txt;
for i in *;
do
echo "$i:" >> /musik/alben.txt;
echo "$i:" >> /musik/titel.txt;
cd "$i";
echo "`ls`" >> /musik/alben.txt;
echo "==============================================" >> /musik/alben.txt;
#hauptteil der titelschleife
for j in /musik/musiksammlung/"$i"/*;
do
echo "`basename "$j"`:" >> /musik/titel.txt;
cd "$j";
echo "`ls`" >> /musik/titel.txt;
echo "----------------------------------------------" >> /musik/titel.txt;
cd ..;
done
echo "==============================================" >> /musik/titel.txt;
echo "----------------------------------------------" >> /musik/titel.txt;
##
cd ..;
done
Hilft ja vieleicht mal noch Jemand anderem...
MFG Loi
Powered by vBulletin® Version 4.2.0 Copyright ©2013 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.