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

如何使用Bash命令提取grep返回的数值并赋值变量执行算术运算

实现方案

方案1:按行顺序批量赋值(适合行顺序固定的场景)

通过进程替换搭配read命令一次性读取两个数值,搭配awk的$NF参数直接提取每行最后一列,不受列之间空格数量影响:

# 一次性读取两个值赋值给num1和num2
read num1 num2 < <(grep 'number' FILE | awk '{print $NF}')

执行后$num1就是123,$num2就是456。

方案2:按关键字单独赋值(更稳妥,不受行顺序影响)

如果不确定number1和number2的行顺序,可单独匹配关键字提取:

num1=$(grep 'number1:' FILE | awk '{print $NF}')
num2=$(grep 'number2:' FILE | awk '{print $NF}')

算术运算示例

Bash原生支持整数算术运算,使用$(( ))语法即可:

# 求和
sum=$((num1 + num2))
# 求乘积
product=$((num1 * num2))
# 求差值
diff=$((num2 - num1))
# 求整数商
quotient=$((num2 / num1))

# 输出验证
echo "和为: $sum"
echo "乘积为: $product"

如果需要处理浮点数运算,可搭配bc工具实现:

# 浮点数除法示例,保留2位小数
float_div=$(echo "scale=2; $num2 / $num1" | bc)
echo "浮点数商为: $float_div"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:48:03