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

如何在Bash中根据另一变量长度删除字符串变量的指定空格?

Bash 删除指定数量的开头空格

已知变量:

var="         |"  # 开头有9个空格
var2="hello"      # 长度为5

要删除var中数量等于var2长度的开头空格,最终得到" |",可以用以下两种方法:

方法一:纯Bash参数展开(推荐)

利用Bash的参数展开结合printf生成对应长度的空格,再删除开头的匹配内容:

# 一行实现
var_trimmed="${var#"$(printf "%${#var2}s" "")"}"

# 分步拆解更清晰:
n=${#var2}                  # 获取var2的长度,这里是5
spaces=$(printf "%${n}s" "")# 生成5个空格的字符串
var_trimmed="${var#$spaces}"# 删除var开头的5个空格

方法二:使用sed工具

通过sed的正则匹配,删除开头指定数量的空格:

n=${#var2}
var_trimmed=$(sed "s/^ \{${n}\}//" <<< "$var")

验证结果:

echo "$var_trimmed"  # 输出:    |

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:05:21