1

目前一个变量被设置为这样的字符串:

offs3.0

我想把它分成2个变量

offs
3.0

我该怎么做?

因为我稍后会使用offs。

if ("$1"=="offs")
here $1 is offs3.0
4

4 回答 4

3

使用 bash 正则表达式

s=offs3.0
[[ $s =~ ^([^[:digit:]]+)(.*) ]] &&
   echo "${BASH_REMATCH[1]} - ${BASH_REMATCH[2]}"
offs - 3.0
于 2013-10-16T10:07:50.557 回答
1

如果您只想测试变量是否包含offs,您可以使用:

if [[ "$1" =~ "offs" ]]
then
    # do something
fi
于 2013-10-16T09:53:29.090 回答
0

或者只是使用 shell 的内置参数替换。

var='offs3.0'
echo "${var%%[.0-9]*}"
echo "${var##*[A-Za-z]}"
于 2013-10-16T16:31:19.443 回答
0

也可以使用单个 sed 来完成:

s='offs3.0'
(set -- $(sed 's/^\([a-z]*\)\(.*\)$/\1 \2/' <<< "$s") && echo "arg1=$1" "arg2=$2")

arg1=offs arg2=3.0
于 2013-10-16T09:56:09.367 回答