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

如何使用Shell变量扩展提取指定格式字符串中的数字串123456

提取纯数字部分的实现方法

有两种常用的实现方案,都可以获取到目标数字:

方案1:纯Bash变量扩展(无外部命令,效率最高)

Bash参数扩展不支持直接嵌套,你可以分两步处理:

patchname="p123456_19100210720_linux-86-64"
# 第一步:提取第一个下划线前的前缀 p123456
prefix=${patchname%%_*}
# 第二步:删除前缀开头的非数字部分(如果固定是p开头,也可以简化写为${prefix#p})
patch_num=${prefix##*[!0-9]}

echo $patch_num

运行后直接输出123456。

方案2:调用外部命令(写法更灵活)

如果允许使用sed/awk等外部工具,可以一步完成提取:

sed实现:

patch_num=$(echo "$patchname" | sed -E 's/^[^0-9]*([0-9]+)_.*/\1/')

awk实现:

patch_num=$(echo "$patchname" | awk -F '[_p]' '{print $2}')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:57:02