繁体   English   中英

在bash脚本中打印子字符串

[英]printing a substring in a bash script

我有一个字符串:

baseline=RAVENPLAT1.5.5.0_1.5.5.0-318_CHASSIS_PKG_193_15-AUG-2014_0350@/vobs/tlv_pvob

我试图进入一个变量子串,直到'@'符号可能吗?

使用参数扩展:

$ 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

使用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%%@*}"

尝试类似的东西

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}

希望你的字符串中只有1 @ -

 a=abc@b.c
 echo ` echo $a | tr @ ' ' | awk '{print $1}'`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM