(RISOLTO)script conversione mp3

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
salvop
Linux 0.x
Linux 0.x
Messaggi: 87
Iscritto il: dom 23 lug 2006, 17:53

(RISOLTO)script conversione mp3

Messaggio 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
Ultima modifica di salvop il gio 21 set 2006, 0:06, modificato 1 volta in totale.

Avatar utente
prione
Linux 1.x
Linux 1.x
Messaggi: 183
Iscritto il: lun 5 dic 2005, 22:33
Località: Milano

Re: script conversione mp3

Messaggio 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!

salvop
Linux 0.x
Linux 0.x
Messaggi: 87
Iscritto il: dom 23 lug 2006, 17:53

Messaggio 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

Avatar utente
rob
Linux 3.x
Linux 3.x
Messaggi: 924
Iscritto il: lun 22 nov 2004, 0:00
Località: Roma

Messaggio da rob »

for i in *.mp3; do bn=`basename $i .mp3`; lame --decode $i ${bn}.wav; done

spezzarlo così potrebbe funziare?

salvop
Linux 0.x
Linux 0.x
Messaggi: 87
Iscritto il: dom 23 lug 2006, 17:53

Messaggio da salvop »

..provato col testo spezzato...nn va...ripete sempre lo stesso errore...

manublade
Linux 2.x
Linux 2.x
Messaggi: 499
Iscritto il: dom 8 gen 2006, 22:21

Messaggio 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.
Ultima modifica di manublade il mer 20 set 2006, 23:20, modificato 1 volta in totale.

Avatar utente
rob
Linux 3.x
Linux 3.x
Messaggi: 924
Iscritto il: lun 22 nov 2004, 0:00
Località: Roma

Messaggio 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
Ultima modifica di rob il mer 20 set 2006, 23:22, modificato 1 volta in totale.

Avatar utente
rob
Linux 3.x
Linux 3.x
Messaggi: 924
Iscritto il: lun 22 nov 2004, 0:00
Località: Roma

Messaggio da rob »

dimenticavo, anche lame potrebbe dare errori per lo stesso motivo, regolati di conseguenza

rob

manublade
Linux 2.x
Linux 2.x
Messaggi: 499
Iscritto il: dom 8 gen 2006, 22:21

Messaggio 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

Avatar utente
rob
Linux 3.x
Linux 3.x
Messaggi: 924
Iscritto il: lun 22 nov 2004, 0:00
Località: Roma

Messaggio 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

Avatar utente
spudhead
Linux 1.x
Linux 1.x
Messaggi: 130
Iscritto il: sab 17 dic 2005, 0:17
Slackware: 12.2
Kernel: 2.6.28.7
Desktop: KDE 3.5.10
Località: Ancona, Italy

Messaggio da spudhead »

Ciao!

questa e' la prima volta che do un consiglio... :idea:

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!

Avatar utente
prione
Linux 1.x
Linux 1.x
Messaggi: 183
Iscritto il: lun 5 dic 2005, 22:33
Località: Milano

Messaggio 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!

salvop
Linux 0.x
Linux 0.x
Messaggi: 87
Iscritto il: dom 23 lug 2006, 17:53

Messaggio 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.

salvop
Linux 0.x
Linux 0.x
Messaggi: 87
Iscritto il: dom 23 lug 2006, 17:53

Messaggio 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

Avatar utente
l1q1d
Master
Master
Messaggi: 1862
Iscritto il: lun 21 feb 2005, 0:00
Località: In uno spazio n-dimesionale
Contatta:

Messaggio 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 

Rispondi