Attyla [ Legend ]
linux zamiana plików wma na mp3
Zrobiłem skrypt, który ma przetwarzać pliki z formatu *.wma na *.mp3 o następującej treści:
#!/bin/bash
current_directory=$( pwd )
#remove spaces
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
#remove uppercase
for i in *.[Ww][Mm][Aa]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
#Rip with Mplayer / encode with LAME
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -waveheader $i && lame -m s audiodump.wav -o $i; done
#convert file names
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done
rm audiodump.wav
Uruchamiam plik i mam komunikat:
mv: nie można wykonać stat na `*.wma': No such file or directory
mv: nie można wykonać stat na `*.[Ww][Mm][Aa]': No such file or directory
-waveheader has been removed. Use -ao pcm:waveheader instead.
MPlayer SVN-r29237-4.4.1 (C) 2000-2009 MPlayer Team
mv: nie można wykonać stat na `*.wma': No such file or directory
rm: nie można usunąć `audiodump.wav': No such file or directory
O co może mu chodzić?
kamyk_samuraj [ Legend ]
a nie możesz uruchomić skryptu z sh -x i zobaczyć, gdzie dokładnie bash widzi problemy. Przypuszczam,że problem jest z tym, że widzi *.wma jako zwykłą zmienną tablicową, która jest pusta a nie jako zbiór nazw wszystkich plikóów z rozszerzeniem wma.
Attyla [ Legend ]
mam dokładnie ten sam komunikat.Czy na pewno miałem uruchomić skrypt z opcją -x, czy może zrobić coś innego?
kamyk_samuraj [ Legend ]
Uruchamiasz przez
sh -x skrypt
Skrypt powinien być wykonywany po linijce w sposób:
+ polecenie1
wynik polecenia1
+ polecenie2
wynik polecenia2
itd.
co do *.wma - wydaje mi się, że powinno być ls *.wma
for i in ls *.wma
tylko nie wiem jak z cudzysłowami - bo samo *.wma nie zwróci ci listy plików z rozszerzeniem *.wma - dopiero ls *.wma to zrobi