how to parse a string in Shell script
shell
Solution
$ first=$(echo $VERSION | cut -d- -f1 | sed 's/\.//g')
$ second=$(echo $VERSION | cut -d- -f2 | cut -d. -f2)
Problem
I want to parse the following string in shell script. ``` VERSION=2.6.32.54-0.11.def ``` Here I want to get two value. ``` first = 263254 second = 11 ``` I am using following to get the first value: ``` first=`expr substr $VERSION 1 9| sed "s/\.//g" |sed "s/\-//g"` ``` to get the second: ``` second=`expr substr $VERSION 10 6| sed "s/\.//g" |sed "s/\-//g"` ``` Using above code the output is: ``` first=263254 second=11 ``` The result wont be consistent if version is changed to: ``` VERSION=2.6.32.54-0.1.def ``` Here second value will become 1d, but I want it give output of 1 only. How can I directly parse the number after '-' and before '.d'?