Problem beim anlegen einer Playlist.
Christian Brabandt
cblists at 256bit.org
Mit Okt 21 11:54:50 BST 2009
Hi Marc!
On Mi, 21 Okt 2009, Marc K wrote:
> #! /bin/bash
> echo "Geben Sie den Pfad zu ihrer Musik ein"
> read mpfad
> echo "Geben Sie den Pfad zum Speichern der Playlists ein"
> read ppfad
> find $mpfad -type d > /tmp/temp
> while read x
> do
> cd "$x"
> for e in mp3 wma wav ogg;do
> for f in *.$e;do
> test "$f" = "*.$e" && continue
> echo "$(pwd)/$f" >>$x.m3u
> done
> done
> if [ ! -s $x.m3u ] ;
> then
> rm $x.m3u
> fi
> find $mpfad/*.m3u | mv *.m3u $ppfad
> done < /tmp/temp
> rm /tmp/temp
> echo "Fertig ¢Joe.deluxe 29.12.2007"
> exit 0
Örgs. Da sind ein paar seltsame Sachen drin. Generell solltest Du Dir
angewöhnen, Variablen /immer/ zu quoten.
> find $mpfad/*.m3u | mv *.m3u $ppfad
Das funktioniert nicht. Zumindest nich so, wie du es willst.
Analog zum obigen Skript, würde ich folgendes machen:
#!/bin/sh
echo "Geben Sie den Pfad zu ihrer Musik ein"
read mpfad
echo "Geben Sie den Pfad zum Speichern der Playlists ein"
read ppfad
find "$mpfad" -type d -exec sh -c '
find "$1" -maxdepth 1 -mindepth 1 -type f -name "*.mp3" -o -name "*.ogg"
-o -name "*.wav" -o -name "*.wma" > "${1}"/"${1##*/}".m3u
' find-sh '{}' \;
find "$mpfad" -type f -name "*.m3u" -empty -delete
find "$mpfad" -type f -name "*.m3u" -exec mv -t "$ppfad" '{}' +
echo "Fertig"
Fehlerhandling fehlt noch im mv Aufruf. Wenn eine Datei bereits
vorhanden ist, würde mv diese Datei überspringen, IIRC.
Mit freundlichen Grüßen
Christian
--
:wq