如何左右同时脱线?

kev*_*kev 5 bash

我使用${parameter#word}${parameter%word}删除字符串的前缀和后缀。

$ x=2012-hello.jpg
$ y=${x#*-}
$ z=${y%.*}
$ echo $z
hello
Run Code Online (Sandbox Code Playgroud)

我怎样才能一次做而不是两次。

cho*_*oba 5

参数扩展是不可能的,但正则表达式匹配是可能的:

x=2012-hello.jpg
[[ $x =~ .*-(.*)\.jpg ]] && echo ${BASH_REMATCH[1]}
Run Code Online (Sandbox Code Playgroud)