バージョン文字列からバージョンID番号を作る方法

MySQLのconfigure.inが参考になる。

# Set all version vars based on $VERSION. How do we do this more elegant ?
# Remember that regexps needs to quote [ and ] since this is run through m4
# We take some made up examples
#
#  VERSION                  5.1.40sp1-alpha     5.0.34a
#  MYSQL_NO_DASH_VERSION    5.1.40sp1           5.0.34a
#  MYSQL_NUMERIC_VERSION    5.1.40              5.0.34
#  MYSQL_BASE_VERSION       5.1                 5.0
#  MYSQL_VERSION_ID         50140               50034
#
MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|-.*$||"`
MYSQL_NUMERIC_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|[[a-z]][[a-z0-9]]*$||"`
MYSQL_BASE_VERSION=`echo $MYSQL_NUMERIC_VERSION | sed -e "s|\.[[^.]]*$||"`
MYSQL_VERSION_ID=`echo $MYSQL_NUMERIC_VERSION | \
    awk -F. '{printf "%d%0.2d%0.2d", $1, $2, $3}'`

自力で作ったらショボイ版になるかすごく時間がかかるわ。