On Wed, Nov 14, 2012 at 6:26 PM, Larry Baker <baker@usgs.gov> wrote:
m4 --version | sed -n -E -e '1s/^.*[^A-Za-z0-9_-]?([0-9]+[.][0-9]+[.][0-9]+)[^A-Za-z0-9_-]?.*$/\1/p'

 
There are STILL problems with this approach as it is TWICE specific to GNU software:

1) M4 on OpenBSD (maybe others) doesn't support a "--version" flag:
$ m4 --version | sed -n -E -e '1s/^.*[^A-Za-z0-9_-]?([0-9]+[.][0-9]+[.][0-9]+)[^A-Za-z0-9_-]?.*$/\1/p'
m4: unknown option -- -
usage: m4 [-gPs] [-Dname[=value]] [-d flags] [-I dirname] [-o filename]
        [-t macro] [-Uname] [file ...]

2) sed on Solaris (maybe others) doesn't support a "-E" flag:
$ m4 --version | sed -n -E -e '1s/^.*[^A-Za-z0-9_-]?([0-9]+[.][0-9]+[.][0-9]+)[^A-Za-z0-9_-]?.*$/\1/p'
/bin/sed: illegal option -- E

-Paul

--
Paul H. Hargrove                          PHHargrove@lbl.gov
Future Technologies Group
Computer and Data Sciences Department     Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900