【问题标题】:Command to sum 2nd colum of csv file对 csv 文件的第二列求和的命令
【发布时间】:2022-03-22 23:49:04
【问题描述】:

嗨,我有一个 csv 文件,它有 2 个列,第一列有名称,而 secons 有值。我想要的只是一个脚本,它可以将第二列的值相加并将csv最后一行中的输出打印为总计

文件示例:-

CNG 2128485188
WND 222047363
HUM 283010928
AINGO   253694944

我正在使用的命令在最后一行打印,但总数为 0。

$ awk '{print;s+=$2}END{printf "Total %'\''d\n",s}' /cygdrive/c/KPI/test/SCCP_ADMIN_RAW2.csv | tail -10
LIMIT,27789
VDEOT,21109
CELZA,627
DUUNI,26636
EMBLT,1255927
URA,521
MONTE,1789
EGLMO,391
DGTEL,394
Total 0

【问题讨论】:

  • awk 'BEGIN{s=0;}{print;s+=$2}END{printf "Total %'\''d\n",s}'
  • 仍然给出总计为 0
  • $ awk 'BEGIN{s=0;}{print;s+=$2}END{printf "Total %'\''d\n",s}' /cygdrive/c/KPI/测试/SCCP_ADMIN_RAW2.csv | tail -10 LIMIT,27789 VDEOT,21109 CELZA,627 DUUNI,26636 EMBLT,1255927 URA,521 MONTE,1789 EGLMO,391 DGTEL,394 总计 0
  • 我的错。这是分隔符问题。是逗号,默认是空格。

标签: bash awk


【解决方案1】:
$ awk -F"," '{print;x+=$2}END{print "Total " x}' ./test.csv 
CNG ,1
WND ,2
HUM ,1
AINGO   ,1
Total 5

【讨论】:

  • 如果我想在 "Total" 后面加逗号 "," 怎么办?
  • awk -F"," '{print;x+=$2}END{print "Total ," x}' ./test.csv
  • 如果要保存在CSV文件最后添加:> filename.csv
  • @dngot_ 如何将列号作为变量提供?例如:colNo=2 我想将此 $colNo 变量赋予此 awk 命令
  • awk -F"," '{print;x+=$colNo}END{print "Total " x}' ./test.csv 这不起作用
猜你喜欢
  • 1970-01-01
  • 2016-09-06
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多