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

使用awk跳过末尾指定数值并求和的纯awk实现方案

纯awk实现跳过末尾指定数量数值后的求和

核心单行命令

假设要跳过末尾8个数值,目标文件为data.txt,执行以下命令:

awk -v skip=8 '{arr[NR]=$0} END{for(i=1;i<=NR-skip;i++) sum+=arr[i]; printf "%.4f\n", sum}' data.txt

命令解析

  • -v skip=8:通过变量skip指定需要跳过的末尾数值数量,可根据需求修改数值
  • {arr[NR]=$0}:将文件中每一行的数值存入数组arr,NR(当前行号)作为数组的下标
  • END{...}:所有行处理完成后执行后续逻辑
    • for(i=1;i<=NR-skip;i++) sum+=arr[i]:遍历数组中前NR-skip个元素(即跳过末尾skip个值),累加计算总和
    • printf "%.4f\n", sum:按4位小数格式输出计算结果,与示例中的格式匹配

健壮性优化(可选)

如果需要处理总行数小于跳过数量的场景(避免循环逻辑出错),可添加判断:

awk -v skip=8 '{arr[NR]=$0} END{if(NR>skip){for(i=1;i<=NR-skip;i++) sum+=arr[i]} else sum=0; printf "%.4f\n", sum}' data.txt

当文件总行数小于等于skip时,直接输出0(可根据实际需求调整默认值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:12:08