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

如何在Bash中截取字符串从开头至倒数第N个字符?

Bash字符串截取解决方法

你的猜测没错,${str: -4}确实是从字符串倒数第4个字符开始截取,所以你之前的代码拿到的是最后4个字符(包含空格和三个感叹号)。要去掉末尾的三个感叹号、得到目标字符串,有这几种简单可行的方法:

  • 参数扩展直接截取:利用${字符串:起始位置:长度}的语法,当长度为负数时,表示从起始位置到倒数第N个字符结束。这里我们要去掉最后3个感叹号,直接用:

    str="Please help me do my homework !!!"
    printf "%s\n" "${str:0:-3}"
    

    输出结果就是Please help me do my homework。

  • 批量删除末尾感叹号:如果不确定末尾感叹号的数量,想一次性去掉所有末尾的感叹号,可以用参数扩展的后缀删除功能:

    printf "%s\n" "${str%%!*}"
    

    这个语法会从字符串末尾开始,删除最长的匹配!*的部分,也就是把最后所有感叹号都清除掉。

  • sed命令替换:通过sed命令将字符串末尾的感叹号替换为空:

    printf "%s\n" "$str" | sed 's/!*$//'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:48:11