| Autor | Nachricht | 
  
    |  | 
        
          |   | Titel: script das mehrere Dateien verarbeitet gesucht  Verfasst am: 01.06.2006, 13:22 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 24. Aug 2005
 Beiträge: 144
 
 
 |  | 
        
          | Hallo allerseits! Ich suche ein script, das mir alle wavs in einem Verzeichnis in mp3 umwandelt. Hab gesehen, da gabs schonmal einen thread, aber ich suche eine ganz einfache version.
 Es würde schon reichen, wenn man alle Dateinamen ohne das ".wav" einlesen könnte, und nacheinander abarbeiten, etwa so(pseudocode):
 
 
 DATEILISTE=<alle Dateien im aktuellen Verzeichnis ohne endung>
 
 for each in $DATEILISTE do
 **censored** -m j -q 2 -V 0 --athlower 5 -p $DATEI.wav $DATEI.mp3
 end
 
 Veilleicht habt ihr da ja ne einfache verständliche Lösung.
 
 gruß hum
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel: script das mehrere Dateien verarbeitet gesucht  Verfasst am: 01.06.2006, 13:51 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 21. Nov 2004
 Beiträge: 1018
 
 
 |  | 
        
          | Ungefähr so: 
 Code: 
DATEILISTE=`ls *.wav *`
 
 for FILE in $DATEILISTE; do
 **censored** -m j -q 2 -V 0 --athlower 5 -p $FILE `basename $FILE .wav`.mp3
 done
 
 Ich habe übebrigens die Syntax vom **censored** Befehl ohne nachzusehen einfach übernommen. Keine Garantie, dass die so läuft...
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 01.06.2006, 14:41 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 24. Aug 2005
 Beiträge: 144
 
 
 |  | 
        
          | Ja, genau sowas meinte ich! 
 Gibt nur ein großes Problem:
 Der for Befehl verarbeitet die Dateiliste nicht richtig. Leerzeichen werden auch als Trennzeichen erkannt, es sollte aber nur Zeilenumbruch sein. Das Passiert auch wenn ich #!/bin/bash benutze.
 
 Hatte das schonmal, und desshalb sein gelassen. Weiß nicht wie man soche Listen vernünftig verarbeitet.
 
 Die wav Dateien haben folgendes Format:
 "Interpret - Album - Titelnummer - Name.wav"
 
 
 Bisher sieht das script so aus(zum testen):
 
 Code: 
#!/bin/sh
 # Erstellt zu jeder .wav-Datei im aktuellen Verzeichnis ein .mp3
 
 DATEILISTE=`ls *.wav`
 
 for FILE in $DATEILISTE; do
 #**censored** -m j -q 2 -V 0 --athlower 5 -p -b 192 $FILE `basename $FILE .wav`.mp3
 echo "$FILE `basename $FILE .wav`.mp3"
 done
 
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 01.06.2006, 16:42 Uhr |  | 
  
    | 
        
          | 
  
 Anmeldung: 17. Sep 2004
 Beiträge: 1600
 Wohnort: Nahe der bayerischen Voralpen
 
 |  | 
        
          | Hi humbold, so sollte es funktionieren.
 
 
 Code: 
# vorhandene wav-dateien
 # ls -1
 datei.wav
 eine datei.wav
 Interpret - Album - Titelnummer - Name.wav
 noch eine datei.wav
 
 
 Shellscript:
 
 Code: 
for I in *
 do echo $I
 done
 
 
 Ausgabe des Shellscripts:
 
 Code: 
datei.wav
 eine datei.wav
 Interpret - Album - Titelnummer - Name.wav
 noch eine datei.wav
 
 |  
          | _________________
 Ciao bluelupo
 SIDux Kernel 2.6.19.1-slh-up-1, tagesaktuell
 AMD Athlon XP 2600+ | Memory 2048 MByte
 GLX Renderer GeForce 7600 GT/AGP | GLX Version 2.1.0 NVIDIA 97.42
 DSL6000 De-FLAT FRITZ!Box Fon WLAN 7050
 |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel: Re: script das mehrere Dateien verarbeitet gesucht  Verfasst am: 01.06.2006, 17:49 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 21. Nov 2004
 Beiträge: 1018
 
 
 |  | 
        
          | Zweiter Versuch: 
 
 Code: 
DATEILISTE=`ls -Q *.wav`
 
 for FILE in $DATEILISTE; do
 **censored** -m j -q 2 -V 0 --athlower 5 -p "$FILE" "`basename $FILE .wav`.mp3"
 done
 
 
 Vielleicht klappt das ja...
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 01.06.2006, 18:12 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 18. Jan 2004
 Beiträge: 645
 
 
 |  | 
        
          | Ich habe so ein Script geschrieben. http://jgese.de/no6/content/view/21/1/
 Kannste noch mehr mit machen, Cd's rippen, verschiedene Formate konvertieren (ogg, mp3, flac) und einstellen der Qualität.
 
 
  |  
          | _________________
 Bis die Tage
 Achim
 |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 12.06.2006, 20:38 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 24. Aug 2005
 Beiträge: 144
 
 
 |  | 
        
          | So, dank eurer Tipps hab ich jetzt folgende Lösung: 
 
 Code: 
#!/bin/sh
 # wav2mp3.sh
 # Erstellt zu jeder .wav-Datei im aktuellen Verzeichnis ein .mp3
 # Vorhandene gleichnamige .mp3-Dateien werden überschrieben!
 
 function processFile()
 {
 MP3FILE=`basename "$2" "$1"`.mp3;
 echo -E "Erstelle \"$MP3FILE\" :";
 **censored** -m j -q 2 -V 0 --athlower 5 -p -b 192 "$2" "$MP3FILE";
 echo -e "fertig! \n";
 return
 }
 
 
 for FILE in *; do
 FILETYPE=`echo -E "$FILE" | tail --bytes=5`;
 case $FILETYPE in
 ".wav") processFile ".wav" "$FILE";;
 ".WAV") processFile ".WAV" "$FILE";;
 ".Wav") processFile ".Wav" "$FILE";;
 ".WAv") processFile ".WAv" "$FILE";;
 ".wAv") processFile ".wAv" "$FILE";;
 ".wAV") processFile ".wAV" "$FILE";;
 ".waV") processFile ".waV" "$FILE";;
 ".WaV") processFile ".WaV" "$FILE";;
 # *) echo Lasse "$FILE" aus;;
 esac
 done
 
 
 Besten Dank für die Hilfe!
 
 Gruß hum
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
  
    |  |