Chinaunix

标题: 计算一行内某几列的和,作为新的列 [打印本页]

作者: iamline    时间: 2013-09-11 14:53
标题: 计算一行内某几列的和,作为新的列
   我们用awk求和,若是对某一列求和,一般是sum+=$i,然后输出sum;
   
   但若是要计算行的和呢?假设文件有N行,10列,想计算这10列的和,作为新的$11,每行都这么处理,那要如何实现呢?
作者: dn833    时间: 2013-09-11 15:02
  1. awk '{for (i=1;i<=NF;i++) s=s+$i; print $0,s;s=0}'
复制代码

作者: xiaoshichao143    时间: 2013-09-11 15:06
本帖最后由 xiaoshichao143 于 2013-09-11 15:14 编辑
  1. awk '{for(i=1;i<=NF;i++){sum+=$i};print $0,sum;sum=0}'
复制代码

作者: dn833    时间: 2013-09-11 15:07
回复 3# xiaoshichao143


    你这样搞单行可以,N行的话就不对啦
作者: xiaoshichao143    时间: 2013-09-11 15:12
回复 4# dn833


    好吧,dn833 是对的...哈哈,学艺不精
作者: li0924    时间: 2013-09-11 15:23
  1. awk '{for(i=1;i<=NF;i++){a[NR]+=$i} print $0,a[NR];delete a}'
复制代码

作者: iamline    时间: 2013-09-11 16:01
dn833 发表于 2013-09-11 15:02


很感谢亲的帮忙!谢谢
作者: iamline    时间: 2013-09-11 16:01
li0924 发表于 2013-09-11 15:23


非常感谢啊!!!
作者: iamline    时间: 2013-09-11 16:02
xiaoshichao143 发表于 2013-09-11 15:06


还是感谢,我写的时候也碰到这样的问题
作者: LikeLx    时间: 2013-09-11 16:29
本帖最后由 LikeLx 于 2013-09-11 16:34 编辑

学习了....
作者: 关阴月飞    时间: 2013-09-11 16:49
ls的头像,太震精鸟......
作者: reyleon    时间: 2013-09-11 17:08
楼上的眼光很犀利




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2