myVar = designers/Atom-CMP-d0b3695.zip
只需要从上面的变量中提取此字符串的一部分。
myDesiredVar = CMP-d0b3695
我已经尝试了几种方法,但仍然找不到解决此问题的合适方法?任何快速的帮助都会得到真正的重视。
使用bash
字符串操作:
s='myVar = designers/Atom-CMP-d0b3695.zip'
r="${s%.*}"
r="${r#*-}"
输出:
echo "$r"
CMP-d0b3695
sed 解决方案:
res=$(sed 's/^[^-]*-([^.]*).*/1/' <<< "$myVar")
echo $res
CMP-d0b3695
myVar=designers/Atom-CMP-d0b3695.zip
myDesiredVar=$(echo "$myVar" |grep -oP '-K[^.]+')
echo $myDesiredVar
CMP-d0b3695
将grep
与perl regex
一起使用:K
是为了积极看待后面。[^.]+
的意思是,任何东西,直到看到字面上的点。
var=$(command....)
这称为命令替换。希望现在转储有用。