在特定位置提取特征之间的子串



我得到如下字符串:

text="abcdef"gfijk"lmno"

我如何提取最后两个"-"之间的文本所以我只得到lmno?

我试着用&但没有成功

sub_text=${text&"*}
echo ${sub_text&"*}

这可以通过参数扩展轻松完成。

首先,用${var%pattern}删除最后一个引号,这将从$var:的末尾删除pattern的最短匹配

result=${text%'"'}     # result="abcdef"gfijk"lmno

然后,用${var##pattern}删除从开始到最后一个剩余引号的所有内容,这将从$var:的开始删除pattern的最长匹配

result=${result##*'"'} # result=lmno

然后你就到了:

echo "$result"

最新更新