正则表达式修剪直到符号



尝试修剪直到包含符号"-&">
由于某种原因,当我添加^(.*?(时,bash不会修改变量
GNU bash,版本5.1.16(0(-发布(amd64-portbld-freebsd12.2(

fname="text1 - text2.jpg"
outp="${fname//^(.*?)s-s/}"
echo $outp

预期结果:text2.jpg
有什么建议吗?

您似乎试图在命令中使用regexp(特别是具有未定义行为的PCRE或BRE或ERE(,而不是globbing模式。看见https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html.

这就是你想要做的吗?

$ echo "${fname/* - }"
text2.jpg
$ echo "${fname#* - }"
text2.jpg
$ echo "${fname/*[[:space:]]-[[:space:]]}"
text2.jpg

最新更新