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
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:]