You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中简洁提取字符串最后一个连字符后的内容?

在Bash中提取字符串最后一个连字符后的内容

嘿,这个需求用Bash内置的参数扩展就能完美解决,而且是最简洁的实现方式!

直接用这个语法:${my_variable##*-}

原理说明

这里的##属于Bash的最长匹配删除操作,它会从字符串的开头开始,匹配最长的符合*-规则的部分(也就是从开头一直到最后一个-的所有内容),然后把这部分删掉,剩下的就是最后一个-后面的内容了。

示例演示

  • 当变量是多连字符的字符串时:

    my_variable="this-is-a-test"
    echo ${my_variable##*-}
    

    输出结果:test

  • 当变量只有一个连字符时:

    my_variable="hello-world"
    echo ${my_variable##*-}
    

    输出结果:world

  • 当变量没有连字符时,这个语法会直接返回原字符串:

    my_variable="justplainstring"
    echo ${my_variable##*-}
    

    输出结果:justplainstring

这个方法的最大好处是不需要调用awk、sed这类外部工具,完全依赖Bash内置功能,执行效率更高,代码也更简洁易读。

内容的提问来源于stack exchange,提问作者Andy Cribbens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:20:26