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

Bash变量修剪技术问询:如何将wordpress.tar.gz处理为wordpress

解决Bash中修剪文件名后缀的问题

我来帮你搞定这个问题!你的原脚本有两个小问题,咱们一步步修正:

原脚本的错误点

  • 直接写 $dir | sed... 是不对的:$dir 是字符串wordpress.tar.gz,不是可执行命令,运行时会报错找不到这个命令,得用echo "$dir"把变量内容传递给sed。
  • sed的正则表达式写错了:你要去掉的是.tar.gz后缀,但你的正则写的是-.tar.gz,而且正则里的.需要转义(因为.在正则中代表任意字符),还要加上$确保只替换结尾的后缀。

方法1:修正后的sed版本

#!/bin/bash
dir="wordpress.tar.gz"
echo "$dir"
RELEASE=$(echo "$dir" | sed "s/\.tar\.gz$//")
echo "${RELEASE}"

运行后就能输出wordpress了。这里的正则\.tar\.gz$表示精准匹配字符串结尾的.tar.gz,避免误替换文件名中间出现类似字符的情况。

方法2:Bash内置参数扩展(推荐)

其实Bash本身就有处理字符串后缀的能力,不用调用外部的sed命令,更高效简洁:

#!/bin/bash
dir="wordpress.tar.gz"
echo "$dir"
RELEASE="${dir%.tar.gz}"
echo "${RELEASE}"

这个语法的意思是:${变量名%后缀}会从变量的结尾删除最短匹配的后缀内容,完美适配你的需求。如果你的文件名是my-wordpress.tar.gz,用这个方法也能正确得到my-wordpress。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 11:13:13