[英]Bash: how to sum all columns excluding first column
我需要在bash腳本中對除第一列之外的所有列求和。 請幫忙,因為我是腳本編寫的初學者。
COL1 COL2 COL3 COL4 COL5
APR 674070 672554 813355 809413
APR 674070 672554 813355 809413
APR 674070 672554 813355 809413
APR 375309 374466 460572 457776
APR 254161 253655 316361 314093
APR 234389 233874 295457 293222
APR 252482 251926 319122 316918
輸出應如下所示。 第一列(即APR)對於所有行都是相同的,我不需要打擾它。
期望的結果是
APR,3138551,3131583,3831577,3810248
要么
3138551,3131583,3831577,3810248
我嘗試了下面的命令,但是我需要超過20列,而且我的方法對於那么多列來說太長了。
cat file | awk -F ',' '{a=a+$2}{b=b+$3}{c=c+$4}{d=d+$5} END { print "APR"","a","b","c","d }'
如果在bash中存在另一種方式,請告訴我。
awk -F"," '{for(i=2; i<=NF; i++) sum[i]+=$i} END {for (i=2;i<=NF;i++)if(i!=NF) printf "%d, ",sum[i]; else print sum[i]}' file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.