On Tuesday 15 September 2009 05:54:19 d.henman wrote: Maybe you want to use the short version of for. It's rather short for file (*wav) ffmpeg -b 160k -i $file $file:r.mp3 or for file (*wav) { ffmpeg -b 160k -i $file $file:r.mp3 } That's short and clear syntax. > Background: > > I was just playing around and trying to find an alternative way to > accomplish the following simple for loop: > > $ for file in *.wav > for> do > for> ffmpeg -b 160k -i $file ${file:r}.mp3 > for> done > > > (Method 1.) Note that I could not not use this method as shown below > $ zmv -p ffmpeg -o " -b 160k -i" '(*).wav' '$1.mp3' > > because it puts two hypens, "--", between -i and filename, as below: > ffmpeg -b 160k -i -- song1.wav song1.mp3 > ffmpeg -b 160k -i -- song2.wav song2.mp3 > > -------- > > (Method 2.) Likewise I could not use zargs, yet at least, > because replacements or expansions //l/r or :r didn't seem to > work.. > > $ zargs --replace=arg -e.. -- *.wav .. ffmpeg -b 160k -i arg > ${${file::=arg}//.wav/.mp3} > > produces: > ffmpeg -b 160k -i song1.wav song1.wav > ffmpeg -b 160k -i song2.wav song2.wav > > > and both of > $ zargs --replace=arg -e.. -- *.wav .. echo -b 160k -i arg > ${${file::=arg}:r}.mp3 and > $ zargs --replace=arg -e.. -- *.wav .. echo -b 160k -i arg arg.mp3 > > produces the below with .mp3 appended, but .wav not taken off first. > ffmpeg -b 160k -i Chaos-Voices-Music.wav > Chaos-Voices-Music.wav.mp3 ffmpeg -b 160k -i Dave-s_Song-Part_2.wav > Dave-s_Song-Part_2.wav.mp3 > > > I can't help thinking that zargs could handle this if someway, but I > don't know how to yet. Just wondering if anyone had any suggestions. > > Thanks, > Darel Henmanm >
Attachment:
signature.asc
Description: This is a digitally signed message part.