需要帮助来操作字符串变量

时间:2011-04-27 13:20:53

标签: string shell unix

我编写了一个shell脚本来进行一些处理,并且必须操作变量。基本上,变量是这样的 -

vaa="set policy:set cli"

我的目的是根据“:”的位置将其拆分为两个变量。为了得到正确的结果,我这样做 -

vaa1=${vaa#*:}
echo ${vaa1}   //this prints "set cli" which I want

但是,我无法获得字符串“set policy”的左侧部分。我试过这个 -

vaa2=${vaa%*:}

但它不起作用,我得到整个字符串 - “设置策略:设置cli”。关于如何获得左侧部分的任何想法?

3 个答案:

答案 0 :(得分:1)

试试这个

vaa2=${vaa%:*}
echo ${vaa2}

答案 1 :(得分:1)

你需要改变你的模式

echo ${vaa#*:}  
# from the beginning of the string, 
# delete anything up to and including the first :

echo ${vaa%:*}  
# from the end of the string, 
# delete the last : and anything after it

答案 2 :(得分:1)

这是怎么做的(bash)

$ vaa="set policy:set cli"
$ IFS=":"
$ set -- $vaa
$ echo $1
set policy
$ echo $2
set cli

或读入数组

$ IFS=":"
$ read -a array <<< "$vaa"
$ echo "${array[0]}"
set policy
$ echo "${array[1]}"
set cli