Wow!  This parameter expansion stuff is COOOOOL!!!

Phillip

On Sat, Jun 21, 2003 at 02:45:46PM -0600, Soren Harward wrote:
> Stuart Jansen wrote:
> > FILE=$(echo $FILE | sed 's/....$//'
> > 
> > Regular expressions are such useful things. KSH has some built in RE
> > functions, that I think make it possible to do all this without forking.
> > Bash might also.
> 
> Ooh, ooh!  I just learned how to do this this week!  Bash can indeed 
> manipulate strings like this when you're working with environment 
> variables.  I don't think it's got full regexp support, but it's still 
> pretty powerful.  If you want to chop the last four characters off the 
> value in VARNAME, then do this:
> 
> ${VARNAME%%????}
> 
> or this:
> 
> ${VARNAME::$((${#VARNAME}-4))}
> 
> If you want to do a replacement within the variable, then you can do:
> 
> ${VARNAME/find/replace}
> 
> For example:
> 
> for FILE in *mp3; do
>       mv $FILE ${FILE%%mp3}ogg;
> done
> 
> changes all the extensions of the .mp3 files in your directory to .ogg 
> (though it would probably be a good idea to re-encode them in the process).
> 
> Look up "Parameter Expansion" in the bash manpage.
> 
> Oh yeah, it would be pretty hard to do this just with cut, because there 
> isn't a way to specify "N characters from the end of the string."  Use 
> sed or bash parameter expansion instead.
> 
> --
> Soren Harward
> [EMAIL PROTECTED]
> 
> 
> 
> 
> _______________________________________________
> newbies mailing list
> [EMAIL PROTECTED]
> http://phantom.byu.edu/cgi-bin/mailman/listinfo/newbies

-- 
Phillip Hellewell <[EMAIL PROTECTED]>

_______________________________________________
newbies mailing list
[EMAIL PROTECTED]
http://phantom.byu.edu/cgi-bin/mailman/listinfo/newbies

Reply via email to