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

如何在Shell的for循环中对遍历到的数值元素进行求和

解决方案

方案1:直接使用awk完成求和(更推荐,性能更好)

无需嵌套shell循环,awk本身即可完成提取首字段、累加、输出全流程,命令如下:

awk '{sum += $1} END {print sum}' "$3"

逻辑说明:逐行读取文件时将每行第一个字段累加到自定义变量sum中,所有行处理完成后输出sum的最终值,就是所有首字段的总和。给$3加双引号是为了避免文件路径包含空格时执行出错,属于shell编码的通用良好实践。

方案2:修改你现有的shell循环结构

如果需要保留原有遍历逻辑,可以新增累加变量实现求和,修改后代码如下:

sum=0
for id in $(awk '{ print $1 }' < "$3"); do
  sum=$((sum + id))
done
echo $sum

逻辑说明:先初始化求和变量sum为0,循环过程中每次将提取到的首字段值加到sum中,循环结束后打印sum即可得到总和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:48:03