开发者

bash: extract double from string

I have this string in bash:

str=sdk.iphoneos4.1.sdk

and I would like to have a variable with '4.1' in it开发者_开发问答

is there any way to parse a float/double value in bash ?


In Bash 3.2 or greater:

str=sdk.iphoneos4.1.sdk
pattern='[0-9]+\.[0-9]+'
[[ $str =~ $pattern ]]
echo ${BASH_REMATCH[0]}


Assuming the surrounding text always stays the same:

str=${str#sdk.iphoneos}
str=${str%.sdk}

This is less portable (bash only), but accepts anything in place of iphoneos:

shopt -s extglob
str=${str##sdk.*([a-z])}
str=${str%.sdk}


assuming no other digits elsewhere

$ str=sdk.iphoneos4.0.0.1.sdk
$ echo $str | grep -Po '(\d+.*\d+)(?=\.)'
4.0.0.1
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜