Pagina 1 di 2
(RISOLTO)script conversione mp3
Inviato: mer 20 set 2006, 22:14
da salvop
salve, volendo convertire tutti i brani mp3 in una directory in formato wav, ho editato questo script e l'ho messo nella directory, ma, lanciandolo, nn succede nulla.
lo script è questo:
#!/bin/sh
for i in *.mp3; do lame --decode $i `basename $i .mp3`.wav; done
..dove sto sbagliando?
grazie
Re: script conversione mp3
Inviato: mer 20 set 2006, 22:41
da prione
salvop ha scritto:salve, volendo convertire tutti i brani mp3 in una directory in formato wav, ho editato questo script e l'ho messo nella directory, ma, lanciandolo, nn succede nulla.
lo script è questo:
#!/bin/sh
for i in *.mp3; do lame --decode $i `basename $i .mp3`.wav; done
..dove sto sbagliando?
grazie
manca il permesso di esecuzione
codice:
chmod +x nomefile
Ciao!
Inviato: mer 20 set 2006, 22:50
da salvop
..fatto il chmod...nn succede niente. la shell m restituisce questo errore:
basename: too many arguments
Try `basename --help' for more information.
lame: excess arg .wav
Inviato: mer 20 set 2006, 23:01
da rob
for i in *.mp3; do bn=`basename $i .mp3`; lame --decode $i ${bn}.wav; done
spezzarlo così potrebbe funziare?
Inviato: mer 20 set 2006, 23:12
da salvop
..provato col testo spezzato...nn va...ripete sempre lo stesso errore...
Inviato: mer 20 set 2006, 23:18
da manublade
Il vero problema è che devi togliere gli spazi dai nomi dei file, sostituendoli ad esempio con _ . In questo momento non saprei come fare da riga di comando, ma se usi krename per kde è semplicissimo.
Inviato: mer 20 set 2006, 23:19
da rob
trovato l'errore
for i in *.mp3; do lame --decode $i `basename "$i" .mp3`.wav; done
aggiunti i doppi apici, se ci sono spazi nel nome del file giustamente basename si arrabbia
ciao, rob
edited: manublade, post contemporaneo, sorry
Inviato: mer 20 set 2006, 23:21
da rob
dimenticavo, anche lame potrebbe dare errori per lo stesso motivo, regolati di conseguenza
rob
Inviato: mer 20 set 2006, 23:24
da manublade
Ciao rob, avevo provato anche io con gli apici, ma non funziona. SI devono togliere gli spazi dai file.... almeno questo è quello che ho trovato io provandolo sui miei file
Inviato: mer 20 set 2006, 23:32
da rob
con un po' di pazienza (come sono arruginito con il bash)
Codice: Seleziona tutto
for i in *.mp3; do
wav_name=`basename "$i" .mp3`
wav_name=${wav_name}.wav
lame --decode "$i" "$wav_name"
done
funzia, funzia
ciao, rob
Inviato: mer 20 set 2006, 23:33
da spudhead
Ciao!
questa e' la prima volta che do un consiglio...
Comunque il comando giusto e':
for i in *.mp3 ; do lame --decode "$i" "`basename "$i" .mp3`".wav ; done
Dava errore poiche' gli eventuali spazi nei nomi dei file venivano considerati come separatori di argomenti e non parte integrante del nome stesso...
Ciao!
Inviato: mer 20 set 2006, 23:34
da prione
manublade ha scritto:Ciao rob, avevo provato anche io con gli apici, ma non funziona. SI devono togliere gli spazi dai file.... almeno questo è quello che ho trovato io provandolo sui miei file
Io ho copiancollato lo script così come è stato postato e dopo aver dato i permessi di esecuzione funziona.
Ciao!
Inviato: gio 21 set 2006, 0:02
da salvop
..dunque..con:
for i in *.mp3; do
wav_name=`basename "$i" .mp3`
wav_name=${wav_name}.wav
lame --decode "$i" "$wav_name"
done
..mi dice che nn tova i files mp3
..con:
for i in *.mp3 ; do lame --decode "$i" "`basename "$i" .mp3`".wav ; done
funziona...
..il problema pare proprio essere il nome dei files.
Inviato: gio 21 set 2006, 0:04
da salvop
devo chiedere scusa a rob:
for i in *.mp3; do
wav_name=`basename "$i" .mp3`
wav_name=${wav_name}.wav
lame --decode "$i" "$wav_name"
done
funziona..sbagliavo qualcosa io, ora va..sorry, rob!! grazie a tutti
Inviato: gio 21 set 2006, 9:24
da l1q1d
Non per fare il saccente ma....
Codice: Seleziona tutto
for i in *.mp3; do
wav_name=`basename "$i" \.mp3`.wav
lame --decode "$i" "$wav_name"
done