免费注册 查看新帖 |

Chinaunix

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

求一个脚本进行文本文件数据处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-10 15:22 |只看该作者 |倒序浏览
我有10个文本数据文件,每个文件中两列数据,且第一列数据都相同,每个文件中数据行数也相同。

现在做一个简单处理:把每个文件中的第2列数据相加,最后平均一下,即除以文件个数
有什么简单的命令吗?请教大家提供脚本思路,多谢!

例如文件1的内容为:
1   1.02
2    0.98
3   0.92
文件2的内容为:
1   1.03
2   0.96
3   0.92
文件3的内容为:
1   1.04
2   0.97
3   0.92

那么这3个文件处理后应该得到
1   1.03
2   0.97
3   0.92

[ 本帖最后由 xiongzm 于 2009-2-10 15:38 编辑 ]

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
2 [报告]
发表于 2009-02-10 15:38 |只看该作者

回复 #1 xiongzm 的帖子

  1. awk '{a[$1]+=$2;++b[$1];} END{for(i in a) print i,a[i]/b[i]}' filelist
复制代码

论坛徽章:
0
3 [报告]
发表于 2009-02-10 15:44 |只看该作者
  1. cat file1 file2 file3 |awk '{a[$1]+=$2}END{for (i in a ) print i,a[i]/3 }'
复制代码

论坛徽章:
0
4 [报告]
发表于 2009-02-10 15:48 |只看该作者
ynchnluiti, 我是DBA:

你们给的awk代码计算是正确的,但是输出的时候打乱了第一列的顺序

论坛徽章:
0
5 [报告]
发表于 2009-02-10 16:00 |只看该作者

回复 #4 xiongzm 的帖子

你把你的输出结果贴一下,我看一下哪里乱了。

论坛徽章:
0
6 [报告]
发表于 2009-02-10 16:01 |只看该作者
awk '{if(NR%3==0){a[NR%3+3]+=$2}else{a[NR%3]+=$2}}END{for(i=1;i<=3;i++)print i,a/3}'

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
7 [报告]
发表于 2009-02-10 16:01 |只看该作者
原帖由 xiongzm 于 2009-2-10 15:48 发表
ynchnluiti, 我是DBA:

你们给的awk代码计算是正确的,但是输出的时候打乱了第一列的顺序

用的是awk的数组,是会乱掉。

论坛徽章:
0
8 [报告]
发表于 2009-02-10 16:02 |只看该作者
原帖由 我是DBA 于 2009-2-10 16:00 发表
你把你的输出结果贴一下,我看一下哪里乱了。

可能楼主for(i in a)的时候数据随机出来了?

论坛徽章:
0
9 [报告]
发表于 2009-02-10 16:04 |只看该作者
换成这样看看for (i=1;i<=length(a);i++)

论坛徽章:
0
10 [报告]
发表于 2009-02-10 16:05 |只看该作者
好长时间没搞了俺也来试一试。

假设您的文件名a1.txt  a2.txt a3.txt ........

[testtmp]$ cat a1.txt
1   1.02
2    0.98
3   0.92
[ testtmp]$ cat a2.txt
1   1.03
2   0.96
3   0.92
[testtmp]$ cat a3.txt
1   1.04
2   0.97
3   0.92

[testtmp]$cat   a[1-3].txt | awk '{grp[$1] += $2} END {  for (grp_a in grp) printf "%s : %f\n", grp_a, grp[grp_a]/3 }'

1 : 1.030000
2 : 0.970000
3 : 0.920000

测试通过。。。。。。

俺看到帖子没人还回,
在做测试的过程中,
这么多朋友回复啊哈哈大家积极讨论

[ 本帖最后由 zglcl008 于 2009-2-10 16:14 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP