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

如何在Bash中同时去除字符串的前缀和后缀

同时去除字符串前缀a_和后缀_b的方法

在bash环境中,你可以通过参数展开组合或者文本处理工具实现同时移除前缀和后缀,以下是几种实用方案:

方法1:纯bash参数展开(无需外部工具)

利用bash内置的参数展开特性,分步处理:先移除前缀a_,再对结果移除后缀_b。

for i in *; do
  trimmed=${i##a_}  # 先剥离前缀a_
  echo ${trimmed%_b} # 再剥离后缀_b
done

执行后输出:

cat
dog
food

如果要写成一行命令:

for i in * ; do trimmed=${i##a_}; echo ${trimmed%_b}; done

方法2:使用sed工具批量替换

通过sed的多替换规则,一次性去掉开头的a_和结尾的_b:

for i in * ; do echo "$i" | sed -e 's/^a_//' -e 's/_b$//'; done

执行后输出同样为:

cat
dog
food

方法3:借助basename工具处理

通过两次调用basename命令,分别剥离后缀和前缀:

for i in * ; do echo $(basename $(basename "$i" _b) a_); done

输出结果与前两种方法一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:35:20