在shell脚本中处理字符串

时间:2011-04-17 06:56:32

标签: shell unix scripting string

我正在编写一个shell脚本用于某种目的。我有一个形式的变量 -

var1 = "policy=set policy"

现在我需要操纵变量var来获取索引=之后的字符串。那就是我应该“制定政策”。此外,对于“=”的值不是常数的许多其他变量,我还需要这个。喜欢

var2 = "bgroup = set bgroup port"
var3 = "utm = set security utm" 

你能告诉我怎么做吗?

2 个答案:

答案 0 :(得分:3)

${var#*=}

从左侧删除*=的最短匹配。请注意,这不存在:如果要保存结果,则必须将结果存储在变量中。

另一方面,这是针对bash的。 AFAIK它也适用于ksh和zsh,但不适用于csh或tcsh。

答案 1 :(得分:0)

其他不依赖于你的外壳的方式。

$ var1="policy=set policy"
$ echo $var1 | awk '{sub(/.[^=]*=/,"")}1'
set policy
$ echo $var1 | cut -d= -f2-
set policy
$ echo $var1 | ruby -e 'puts gets.split(/=/,2)[1]'
set policy
$ echo $var1 | sed 's/.[^=]*=//'
set policy