Hallo,
will ich - weil Weihnachten ist - einen Satz mp3's nach wav konvertieren um dann eine Audiocd draus zu brennen.
mpg123 -w datei.wav datei.mp3 ist das Mittel meiner Wahl. Allerdings will ich nicht jeden Song einzeln eingeben, sondern ein ganze Verzeichnis in einem Rutsch bearbeiten:
for var in `ls -1 $1`; do echo konvertiere $var ..........; mpg123 -w $var.wav $var done
eigentlich einfach. ABER:
die Dateinamen sind ungefähr so aufgebaut:
'interpret - das ist der songname.mp3'
Irgendwie muss das noch geqoutet werden, nur weiss ich nicht wie! Wer hilft?
Mit freundlichen Grüßen
Jens Puruckherr
Hi Jens,
On Sat, Dec 22, 2001 at 13:39:31 +0100, Jens Puruckherr wrote:
for var in `ls -1 $1`; do echo konvertiere $var ..........; mpg123 -w $var.wav $var done
#!/bin/bash ls -1 "$1"/*.[Mm][Pp]3 | while read var do echo "konvertiere $var ..." mpg123 -w "${var%.[Mm][Pp]3}.wav" "$var" done
Die Doublequotes erhalten die Leerzeichen in den expandierten Variablen. Die Ausgabe von ls -1 "$1"/*.[Mm][Pp]3 wird an die while-Schleife gepiped. Der Shellpattern *.[Mm][Pp]3 passt auf Dateinamen mit beliebiger Gross-/Kleinschreibung der Endung. Das Konstrukt ${var%.[Mm][Pp]3}.wav schneidet ".mp3" (in beliebiger Gross-/Kleinschreibung) vom Inhalt von var ab und haengt ".wav" an.
Siehe auch bash(1).
Froehliches Decoden, Chris (aus dem Weihnachtsexil mailend)
Am Samstag, 22. Dezember 2001 15:57 schrieb Christian Perle:
Hi Jens,
On Sat, Dec 22, 2001 at 13:39:31 +0100, Jens Puruckherr wrote:
for var in `ls -1 $1`; do echo konvertiere $var ..........; mpg123 -w $var.wav $var done
#!/bin/bash ls -1 "$1"/*.[Mm][Pp]3 | while read var do echo "konvertiere $var ..." mpg123 -w "${var%.[Mm][Pp]3}.wav" "$var" done
yupp, genau sowas habe ich eine halbe stunde später auch gefunden.... Ist schon hart, solche Schnipsel aufzustöbern ;-)
Siehe auch bash(1).
naja, ob mir das eine Hilfe gewesen wäre.....
Danke!
Mit freundlichen Grüßen
Jens Puruckherr
lug-dd@mailman.schlittermann.de