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

使用AWK编辑CSV文件:按第二字段分组求和第一字段的命令修复

问题原因

你写的原有awk命令存在两个核心问题:

  • 语法错误:括号、单引号位置不匹配,循环逻辑无实际意义
  • 逻辑完全偏离需求:原有代码尝试逐行比较相邻字段相等性,没有实现「按第二列字符序列分组、累加对应第一列数值」的核心需求

修正后命令

基础版本(输出顺序为字典序)

awk -F ',' '{sum[$2] += $1} END{for(key in sum) print sum[key] "," key}' infile.csv > outfile.csv

保序版本(输出顺序和第二列首次出现的顺序一致)

如果需要保留原文件中第二列首次出现的先后顺序,用以下命令:

awk -F ',' '!($2 in sum){order[++n]=$2} {sum[$2] += $1} END{for(i=1;i<=n;i++) print sum[order[i]] "," order[i]}' infile.csv > outfile.csv

命令逻辑说明

  • 用关联数组sum,以第二列字符序列为键,累加对应行第一列的数值
  • 保序版本额外用order数组记录第二列首次出现的顺序,最终遍历输出时按该顺序打印

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:06:03