On Mon, Sep 12, 2016 at 3:24 PM Mike Wright <nobody(a)nospam.hostisimo.com>
wrote:
Hi all,
This one's not in my unix nutshell book :/
Extracting the sound from some music videos (mp4's) into mp3's:
for f in "$(ls *.mp4)"; do
ffmpeg -i "$f" -c:a libmp3lame "${f%.mp4}.mp3";
done
I'm not familiar with this notation: ${f%.mp4}, where $f is the name of
an mp4, e.g. "my favorite video.mp4". Can somebody explain this to me?
All it does is strip the filename extension of ".mp4" and replace it with
".mp3".
This is equivalent to: $(basename "$f" .mp4).mp3
See
http://tldp.org/LDP/abs/html/string-manipulation.html:
${string%substring}
Deletes shortest match of *$substring* from *back* of *$string*.