is there a /bin/sh method to tell the ending of a file
Jon Hamilton
hamilton at pobox.com
Mon Jan 7 22:01:20 PST 2008
} On Mon, Jan 07, 2008 at 09:10:58PM -0800, Gary Kline wrote:
} Paul Procacci <pprocacci at datapipe.com>, 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? I spend around 20 minutes cobbling together
} > scripts to burn ISO files last night. Then blindly wasted one CD-R file that
} > was gzipped..... tar barfs on you,but cdrecord dev=foo.gz writes
} > exactly that. I'd like to add a line that yells at me, then gunzips and does
} > an MD5; then writes. (In C, no prob; C lets me fly, but not /bin/sh.
} > But anyway, if any guru can clue me in, thanks. I think my brain is in Maui
} > for a few days.
} >
} 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 :)
--
Jon Hamilton
hamilton at pobox.com
More information about the freebsd-questions
mailing list