免费注册 查看新帖 |

Chinaunix

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

awk求和 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-06 16:47 |只看该作者 |倒序浏览
1.0   2.01    3.0
0.2   1.01    6.0
文本如上格式:
求和后的格式为:
1.0   2.01    3.0
0.2   1.01    6.0
--------
1.2    3.02    9.0
awk怎么写?

当列数不确定时如何处理?
格式如下:
1.0   2.01    3.0
0.2   1.01    6.0   9.0
2.3   3.09    5.0   6.3
5      55       2.5  
2.3   3.01    5.0   0.3     5.01
2.3   88

[ 本帖最后由 javajavaclone 于 2009-8-6 17:51 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2009-08-06 16:50 |只看该作者

回复 #1 javajavaclone 的帖子

awk '...END{printf '--------------\n...'..'

论坛徽章:
0
3 [报告]
发表于 2009-08-06 16:52 |只看该作者
看错了。。
>more bb.txt
1.0 2.01 3.0
0.2 1.01 6.0
>awk '{count1+=$1;count2+=$2;count3+=$3;print$0}END{printf "--------------\n";print$0}' bb.txt
1.0 2.01 3.0
0.2 1.01 6.0
--------------
0.2 1.01 6.0

[ 本帖最后由 wwmstone 于 2009-8-6 16:56 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-08-06 17:10 |只看该作者
原帖由 wwmstone 于 2009-8-6 16:52 发表
看错了。。
>more bb.txt
1.0 2.01 3.0
0.2 1.01 6.0
>awk '{count1+=$1;count2+=$2;count3+=$3;print$0}END{printf "--------------\n";print$0}' bb.txt
1.0 2.01 3.0
0.2 1.01 6.0
--------------
...


能否修改一下,可能有大于3个字段,或者每一记录的字段数都不一样

论坛徽章:
0
5 [报告]
发表于 2009-08-06 17:21 |只看该作者

回复 #1 javajavaclone 的帖子

awk '{a+=$1;b+=$2;c+=$3;print}END{printf "-----------------\n";printf "%-f %-f %-f\n",a,b,c }' u

论坛徽章:
0
6 [报告]
发表于 2009-08-06 17:29 |只看该作者
gawk '{ sum1 += $1;sum2 += $2;sum3 += $3 }; END { print sum1, sum2, sum3 }' file

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
7 [报告]
发表于 2009-08-06 17:30 |只看该作者

回复 #4 baoyu05 的帖子

试试这个:

  1. awk '{if(NF>x)x=NF;print;for(i=1;i<=NF;i++)sum[i]+=$i}END{printf "----------------------------\n";for(j=1;j<=x;j++)printf sum[j]"   ";printf "\n"}' urfile
复制代码

[ 本帖最后由 Minsic 于 2009-8-6 17:31 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2009-08-06 17:46 |只看该作者
原帖由 Minsic 于 2009-8-6 17:30 发表
试试这个:

awk '{if(NF>x)x=NF;print;for(i=1;i

awk '{for(i=1;i<=NF;i++)a+=$i;if(NF>max)max=NF;if(length()>leng)leng=length(); print}END{for(i=1;i<=leng;i++){printf "-"};print "";for(j=1;j<=max;j++){printf a[j]" "};print ""}'

论坛徽章:
0
9 [报告]
发表于 2009-08-06 18:16 |只看该作者
#!/bin/bash
awk '
{
for(i=1;i<=NF;i++)
arr+=$i;
print $0
}
END{
printf "-----------\n";
for(j=1;j<=NF;j++)
printf("%s ", arr[j]);
printf("\n");
}' file

论坛徽章:
0
10 [报告]
发表于 2009-08-07 14:37 |只看该作者
大虾们不要潜水吗,帮一下忙
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP