On 9/20/06, Steven W. Orr <steveo@xxxxxxxxxxx> wrote:
=>Paul Smith wrote: =>> On 9/20/06, Andy Green <andy@xxxxxxxxxxx> wrote: =>> > >> 12\ Missa\ brevis\ in\ G,\ KV\ 140App,\ C1.\ 12\ Agnus\ Dei.wav =>> > > =>> > > Perhaps the best strategy is to eliminate all '\' and then use "$i". =>> > > However, I do not know how to implement it. =>> > =>> > No Paul Howarth's method was best, the problem is probably coming from =>> > the commas. For example, can you do the sox by hand with that filename =>> > even? =>> =>> Yes, I can, Andy. => =>Hm well this works for me with the filename => =>$ ls *.wav =>12 Missa brevis in G, KV 140App, C1. 12 Agnus Dei.wav => =>for i in *\ * ; do sox "$i" -r 44100 -t wav "output_$i" ; done => =>You need the -t otherwise sox gets confused trying to work it out from the =>suffix; because it contains dots in the file part it complains that the type " =>12 Agnus Dei.wav" is unknown without -t. find . -name \*.wav -print0 | \ xargs -0 sox "{}" -r 44100 -t wav "output_{}" I forget what the search criteria was. Just pee in the -name arg for taste.
Thanks, Steven and Andy. The last Andy's solution works fine. However, with Steven's one, I get the following: $ find . -name \*.wav -print0 | xargs -0 sox "{}" -r 44100 -t wav "output_{}" sox: Can't open input file '{}': No such file or directory $ But 'find . -name \*.wav -print' gives me the complete list of wav files in the directory. Paul