Archiv verlassen und diese Seite im Standarddesign anzeigen : *Vorsicht: Konsole* -> Alle Dateien in einem Order auswählen
g-string 3
2005-10-05, 18:29:55
Ich möchte alle .mp3 Dateien eines bestimmten Ordners in .wav umwandeln.
Ich verwende dazu momentan:
lame --decode xxx.mp3
Wie kriege ich lame dazu, alle .mp3 Dateien in diesem Ordner als .wav abzuspeichern?
Das ist überhaupt so eine allgemeine Frage, da ich bisher nicht geschafft habe, alle Dateien (am besten rekursiv) eines Ordners zu wählen.
clm[k1]
2005-10-05, 19:07:23
Das machst du am besten mit einem shell-script.
sollte in etwa so aussehen:
#!/bin/bash
for g in `ls *.mp3`
do
lame --decode ${g}
done
für die Richtigkeit kann ich jetzt nicht garantieren.
Am besten ist sowieso du beschäftigst dich ein bisschen mit shell-programmierung - das kann manchmal echt vorteilhaft sein.
ach ja: du solltest bei dem ls noch obacht geben und eventuell "/bin/ls" hinschreiben, falls du einen alias für ls hast der zuviel ausgibt.
und beachten, das er in der variante das working-directory nimmt.
(kannst ja noch erweitern und den pfad als parameter übergeben ..parameter fragt man mit $1, $2 und so weiter ab)
so far
clm[k1]
g-string 3
2005-10-05, 19:24:32
Ich habe schon befürchtet, ein solches script zu verwenden.
Ich schreibe mal, wie ich das verstehe (Ich möchte nicht spammen und auch niemanden veräppeln).
1) Ich erstelle eine leere Textdatei ohne! Dateiendung in /home/user/mp3/
2) Ich trage folgendes ein:
#!/bin/bash
for g in `/bin/ls /home/user/mp3/*.mp3`
do
lame --decode
done
# (eine Leerzeile???)
3) Ich starte das script
a) Nur wie?
b) aus der konsole?
c) mit welchem befehl
Danke schon mal. Ich werde mich in Zukunft sicherlich intensiver mit scripting beschäftigen. Dies hier ist mein erster Gehversuch.
clm[k1]
2005-10-05, 19:43:27
die Dateiendung ist relativ egal, in der Regel gibt man Shellscripten aber die Endung 'sh'.
Aufrufen tut man es wie jedes andere Programm auch: Pfadname/Programmname
Also wenn man im selben Verzeichniss ist: ./prog.sh
(wenn man die Pfadangabe weg lässt, sucht er in den Pfaden der Umgebungsvariable 'PATH')
clm[k1]
MadMan2k
2005-10-05, 19:47:13
http://db.ilug-bom.org.in/Documentation/abs-guide/sha-bang.html
manuel_
2005-10-05, 19:50:49
2) Ich trage folgendes ein:
#!/bin/bash
for g in `/bin/ls /home/user/mp3/*.mp3`
do
lame --decode $g
done
# (eine Leerzeile???)
.
hi
fehlt da nicht noch das $g oder ${g} ? :|
sonst weiß der doch garned welche dateien er codieren soll...
mfg
ps: bin auch erst am anfangen... also mia culpa (oä)
mfg manuel
g-string 3
2005-10-05, 19:52:54
']die Dateiendung ist relativ egal, in der Regel gibt man Shellscripten aber die Endung 'sh'.
Aufrufen tut man es wie jedes andere Programm auch: Pfadname/Programmname
Also wenn man im selben Verzeichniss ist: ./prog.sh
(wenn man die Pfadangabe weg lässt, sucht er in den Pfaden der Umgebungsvariable 'PATH')
clm[k1]
1) #: cd home/user/mp3
2) nano script.sh
3)
#!/bin/bash
for g in `/bin/ls /home/user/mp3/*.mp3`
do
lame --decode $g
done
# (eine Leerzeile???)
4) #home/user/mp3: script.sh
Ist das so richtig?
manuel_
2005-10-05, 20:17:57
am ende von dem script evtl noch ein
exit
und bevor du das so einfach ausführen kannst musst du noch die rechte auf der datei ändern -> chmod 550 script.sh zb
mfg
ps: ich hab das ganze grad mal mit echo ausprobiert.. und da gabs leichte probleme mit dateien die ein leerzeichen im namen hatten :/ also test it :)
Sephiroth
2005-10-05, 20:19:31
noch 'ne alternative
find . -maxdepth 1 -iname '*.mp3' -exec lame --decode {} ;
maxdepth kan nauch erhöht oder ganz weggelassen werden, falls auch unterordner durchsucht werden sollen
p.s.
ggf '{}' statt {}
g-string 3
2005-10-05, 20:23:37
hey, vielen dank. ich muß jetzte zum sport und melde mich später noch einmal. :)
Harleckin
2005-10-05, 20:59:13
find . -maxdepth 1 -iname '*.mp3' -exec lame --decode {} ;
..man muss noch das ";" maskieren.
find . -maxdepth 1 -iname '*.mp3' -exec lame --decode {} \;
g-string 3
2005-10-06, 00:19:16
noch 'ne alternative
find . -maxdepth 1 -iname '*.mp3' -exec lame --decode {} ;
maxdepth kan nauch erhöht oder ganz weggelassen werden, falls auch unterordner durchsucht werden sollen
p.s.
ggf '{}' statt {}
..man muss noch das ";" maskieren.
Code:
find . -maxdepth 1 -iname '*.mp3' -exec lame --decode {} \;
Da hätte ich ja lange rumprobieren können :eek:
Das ist ja schon etwas geil.
Vielen Dank an Alle.
Harleckin
2005-10-06, 11:06:57
BTW "lame" beinhaltet bereits ein paar gängige Profile..
'lame --preset help'
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.