On Tue, Jan 08, 2008 at 12:01:18AM -0600, Jon Hamilton wrote: > } On Mon, Jan 07, 2008 at 09:10:58PM -0800, Gary Kline wrote: > } Paul Procacci <[EMAIL PROTECTED]>, said on Mon Jan 07, 2008 [11:34:08 PM]: > } > Hi All, > } > > } > Is there an easy way of determing whether a string//filename ends in > } > *.gz? using /bin/sh? > > } Is this what you mean? > } > } --------------------- > } #!/bin/sh > } > } STRING="mystring.gz" > } > } if [ ".gz" = "`echo \"$STRING\" | sed -n 's/.*\(\.gz\)$/\1/p'`" ]; then > } echo test; > } fi > } > } ----------------------- > > Works (I assume) but perhaps easier to read and more "native" might be: > > case "$STRING" in > *\.gz) > echo "Found .gz suffix" > ;; > *) > echo "Not a .gz suffix" > ;; > esac > > Sh is a pretty versatile creature; I'm sure there are a thousand more ways > all of which work, and some of which will cause religious arguments for > decades :)
Right. Here's another way using parameter expansion:
| if [ ${STRING##*.} = gz ] ; then
| echo true
| else
| echo false
| fi
The syntax is terse, but pretty popular in the /etc/rc family of scripts.
--
Chris Cowart
Lead Systems Administrator
Network & Infrastructure Services, RSSP-IT
UC Berkeley
pgpWUJi3EfOiH.pgp
Description: PGP signature
