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