我在CentOS中使用了bash shell,版本…
$ uname -a Linux mydomain.com 3.2.29-48.63.amzn1.x86_64 #1 SMP Sat Sep 15 01:43:12 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
在我的shell脚本中,我想获得一个string的一部分,特别是最后一个短划线(“ – ”)之前的所有内容。 所以如果我的string是“my-importer-1.0.ear”,我想提取“my-importer”。 但是,下面的expression
prefix=${fname%-*}
只是返回“我的”,因为它与第一个短划线相匹配。 如何调整expression式以匹配所有内容,直到最后一个短划线?
你确定你没有使用%% ,从string的末尾删除最长的匹配,因此给你my而%删除最短的匹配,并提供(你为例)你想要什么
fname=my-importer-1.0.ear echo ${fname%%-*} my
而
echo ${fname%-*} my-importer