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

如何用awk格式化并计算数据?求合并计算结果至原数据的方案

解决方案

可以用单条awk命令同时完成原数据输出和结果计算,无需拆分两次执行。执行以下命令即可得到符合要求的输出:

awk '{print $0; a += $1*$3; b += $2*$3} END {printf "%-8s %-8s\n", a, b}' data.test

命令逻辑说明

  • 处理每一行数据时,先通过print $0输出原始行内容
  • 同步累加计算:
    • a:第一列与第三列的乘积之和(对应需求中的a值)
    • b:第二列与第三列的乘积之和(对应需求中的b值)
  • 所有行处理完成后,在END块中用printf格式化输出a和b,通过%-8s控制字段宽度,保证和原数据的列对齐效果一致

执行结果

运行上述命令后,输出将完全匹配期望格式:

1        2     1.07 
1        1     0.51 
1        2     0.54 
2.12     3.73

如果需要固定小数位数(比如保留两位),可以修改END块的printf语句:

awk '{print $0; a += $1*$3; b += $2*$3} END {printf "%.2f     %.2f\n", a, b}' data.test

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:39:07