Re: shell script question
On Sun, Oct 12, 2003 at 11:18:11PM -0400, Jeff Elkins wrote:
> In the same vein, I'm working through a list of mp3s where some of them need
> re-encoding. First, I convert them to wavs with this script fragment:
>
> mpg123 -b 10000 -s "$1" | sox -t raw -r 44100 -s -w -c2 - "$2"
>
> where I feed the script $1 (input) and $2 (output). In every case, $1 and $2
> are the same, except for $2 I want the output filename to have a .wav
> extension.
>
> Could I alter the script to eliminate entering $2, since the basic filename is
> the same?
Here's a little expression that strips off any trailing ".<extension>"
from $1 and tacks on ".wav".
"${1%.*}.wav"
Look under "Parameter Expansion" in bash(1) for how this works. Note
that some of the constructions there are bash-specific; you can compare
with "Parameter Expansion in dash(1) to get the portable subset.
Cheers,
--
Colin Watson [cjwatson@flatline.org.uk]
Reply to: