免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5063 | 回复: 5
打印 上一主题 下一主题

[新手入门] 如何用shell 实现多行多列数据相加? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-14 21:13 |只看该作者 |倒序浏览
有如下行:
10 10 10 
20 20 20 
30 30 30 
40 40 40 
...
...
...
请们高手如何实现所有行对应列数据相加?
请用shell 脚本实现,多谢各们指点。

论坛徽章:
0
2 [报告]
发表于 2009-07-14 22:36 |只看该作者
你到底是要行相加还是列相加?看糊涂了

论坛徽章:
0
3 [报告]
发表于 2009-07-14 22:37 |只看该作者
原帖由 我老婆黑社会 于 2009-7-14 22:36 发表
你到底是要行相加还是列相加?看糊涂了

应该是列相加~

高手指点一下

论坛徽章:
2
2015年亚洲杯之巴勒斯坦
日期:2015-02-15 12:11:292015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2009-07-15 00:25 |只看该作者

回复 #1 ywszzuli2004 的帖子

awk '{a+=$1;b+=$2;c+=$3}END{print a,b,c}' a.txt

论坛徽章:
0
5 [报告]
发表于 2009-07-15 00:25 |只看该作者
如果列相加,可以:

#!/bin/ksh
#sum of cols
i=1
cols=`awk '{print NF}' test.file`
while [ $i -le $cols ]
do
   echo "Sum of $i col:"
   cat test.file | awk -v k=$i '{(tot+=$k)};END{print tot}'
   i=`expr $i + 1`
done

其中test.file为放置数字的文件.

论坛徽章:
0
6 [报告]
发表于 2009-07-22 15:59 |只看该作者
都是高手,不断学习中!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP