10.11.2024, 20:01 UhrDeutsch | English
Hallo Gast [ Registrierung | Anmelden ]

Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen Druckerfreundliche Version Einloggen, um private Nachrichten zu lesen Nächstes Thema anzeigen
Autor Nachricht
humbold
22 Titel: script das mehrere Dateien verarbeitet gesucht  BeitragVerfasst 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
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
Neuer_User
Titel: script das mehrere Dateien verarbeitet gesucht  BeitragVerfasst 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...
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
humbold
Titel:   BeitragVerfasst 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
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
bluelupo
Titel:   BeitragVerfasst 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
 
 Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden  
Antworten mit Zitat Nach oben
Neuer_User
Titel: Re: script das mehrere Dateien verarbeitet gesucht  BeitragVerfasst 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...
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
jgese
Titel:   BeitragVerfasst 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
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
humbold
Titel:   BeitragVerfasst 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
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
Beiträge vom vorherigen Thema anzeigen:     
Gehe zu:  
Alle Zeiten sind GMT + 1 Stunde
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen Druckerfreundliche Version Einloggen, um private Nachrichten zu lesen Nächstes Thema anzeigen
PNphpBB2 © 2003-2007 
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.