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

如何使用Bash从字符串中提取数字并执行数学运算?

从字符串提取数字并进行数学运算的方法

针对你给出的示例场景,这里提供几种shell环境下的实用方法:

方法1:用awk一步完成提取与计算

awk可以直接解析字符串字段并执行浮点运算,是最简洁的方案:

var="VmRSS: 181420 kB"
out=$(awk '{print $2/1024}' <<< "$var")
echo $out

$2对应字符串中的第二个字段(即目标数字181420),直接除以1024后输出结果,默认会保留足够的小数位数。

方法2:sed提取数字+bc做浮点运算

先通过sed提取纯数字,再用bc工具实现精确的浮点计算:

var="VmRSS: 181420 kB"
# 提取字符串中的所有数字
num=$(sed 's/[^0-9]//g' <<< "$var")
# 指定保留3位小数并计算
out=$(echo "scale=3; $num/1024" | bc)
echo $out

sed 's/[^0-9]//g'会删除所有非数字字符,只保留数字;scale=3用于设置bc的小数精度,最终得到你预期的177.168。

方法3:纯bash实现整数运算

如果只需要整数结果,可直接用bash的字符串替换和整数运算:

var="VmRSS: 181420 kB"
# 替换掉所有非数字字符
num=${var//[^0-9]/}
# bash整数除法,结果为177
out=$((num / 1024))
echo $out

注意:bash本身不支持原生浮点运算,若需要小数结果,还是得用awk或bc这类工具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:30:49