how to get number char from a string

for example:

i hav a string like :

/rmsprd/arch01/rmsprd/rmsprdarch72736.log

how I can extract

my_num=72736?

I know I can

echo "/rmsprd/arch01/rmsprd/rmsprdarch72736.log" | tr "/" " " | awk '{ print $4 }' to get rmsprdarch72736.log

> echo "/rmsprd/arch01/rmsprd/rmsprdarch72736.log" | cut -d"/" -f5 | cut -d"." -f1
rmsprdarch72736

if you know it will always be ten characters (rmsprdarch), then

> echo "/rmsprd/arch01/rmsprd/rmsprdarch72736.log" | cut -d"/" -f5 | cut -d"." -f1 | cut -c11-
72736

Something like:

my_num=`echo $string | sed 's/.*[a-z]\([0-9].*\)\..*/\1/'`

Regards

If you are using ksh93 you do not need to invoke external utilities like cut or sed. The following will work

$ str="/rmsprd/arch01/rmsprd/rmsprdarch72736.log"
$ print $str
/rmsprd/arch01/rmsprd/rmsprdarch72736.log
$ print ${str/*([[:print:]])({5}(\d)).log/\2}
72736
$

echo "/rmsprd/arch01/rmsprd/rmsprdarch72736.log" | cut -d"/" -f5 | cut -d"." -f1|tr -d [:alpha:]