H
Heather
Grünschnabel
Hallo,
ich habe ein kleines Shellskript, mit dem ich aus wav-Dateien mp3-Dateien erstelle. Dazu kopiere ich es immer in das Verzeichnis mit den wav-Dateien und führe es dort aus. Wie bekomme ich es hin, dass es auch alle Unterverzeichnisse berücksichtigt und die dort abgelegten wav-Dateien ebenfalls umwandelt und die mp3-Dateien in das gleiche Verzeichnis packt, in dem die dazugehörigen wav-Dateien liegen?
Hier ist das Skript:
Dabei ist wichtig, dass das Skript auch mit Dateien und Verzeichnissen klar kommen soll, in denen Leerzeichen vorkommen.
Wie mache ich das?
Inzwischen habe ich dieses Skript, aber das versagt bei den Leerzeichen:
Danke und Gruß!
Heather
ich habe ein kleines Shellskript, mit dem ich aus wav-Dateien mp3-Dateien erstelle. Dazu kopiere ich es immer in das Verzeichnis mit den wav-Dateien und führe es dort aus. Wie bekomme ich es hin, dass es auch alle Unterverzeichnisse berücksichtigt und die dort abgelegten wav-Dateien ebenfalls umwandelt und die mp3-Dateien in das gleiche Verzeichnis packt, in dem die dazugehörigen wav-Dateien liegen?
Hier ist das Skript:
Code:
#!/bin/bash
for i in *.wav;
do
NAME_MP3=`basename "$i" wav`;
lame -h -V 0 -S "$i" "$NAME_MP3"mp3 &
while [ $((`ps -C lame | wc -l` - 1 )) -ge 2 ]; do sleep 1; done;
done
while [ $((`ps -C lame | wc -l` - 1 )) -ge 1 ]; do sleep 1; done;
Dabei ist wichtig, dass das Skript auch mit Dateien und Verzeichnissen klar kommen soll, in denen Leerzeichen vorkommen.
Wie mache ich das?
Inzwischen habe ich dieses Skript, aber das versagt bei den Leerzeichen:
Code:
#!/bin/bash
if [ "$#" -ne "1" ]
then
echo "Fehler: es muss ein Verzeichnis angegeben werden"
exit 1
fi
for i in `find "$1" -name "*.wav"`;
do
DIRNAME=`dirname "$i"`
NAME_MP3=`basename "$i" wav`;
lame -h -V 0 -S "${i}" "${DIRNAME}/${NAME_MP3}mp3"
done
Danke und Gruß!
Heather