我有一个字符串:
baseline=RAVENPLAT1.5.5.0_1.5.5.0-318_CHASSIS_PKG_193_15-AUG-2014_0350@/vobs/tlv_pvob
我正试图进入变量子串,直到'@'符号可能吗?
答案 0 :(得分:4)
使用参数扩展:
$ baseline=RAVENPLAT1.5.5.0_1.5.5.0-318_CHASSIS_PKG_193_15-AUG-2014_0350@/vobs/tlv_pvob
$ echo "${baseline%%@*}"
RAVENPLAT1.5.5.0_1.5.5.0-318_CHASSIS_PKG_193_15-AUG-2014_0350
答案 1 :(得分:3)
使用BASH正则表达式:
baseline=RAVENPLAT1.5.5.0_1.5.5.0-318_CHASSIS_PKG_193_15-AUG-2014_0350@/vobs/tlv_pvob
[[ "$baseline" =~ ^([^@]+) ]] && myvar="${BASH_REMATCH[1]}"
echo "$myvar"
RAVENPLAT1.5.5.0_1.5.5.0-318_CHASSIS_PKG_193_15-AUG-2014_0350
或者使用BASH字符串操作:
myvar="${baseline%%@*}"
答案 2 :(得分:1)
尝试类似
的内容x = "baseline=RAVENPLAT1.5.5.0_1.5.5.0-318_CHASSIS_PKG_193_15-AUG-2014_0350@/vobs/tlv_pvob"
y = "@"
z = ${x/$y*/$y}
未经测试 - 也许z中的最后一个字符将被删除,类似于:
${z:0:-1}
答案 3 :(得分:1)
希望你的字符串中只有1个@ -
a=abc@b.c
echo ` echo $a | tr @ ' ' | awk '{print $1}'`