免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: chenteng168
打印 上一主题 下一主题

[文本处理] 文本(行有几十万,列有20列以上)求和及求min最小值 要保证速度 [复制链接]

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
21 [报告]
发表于 2016-06-29 16:48 |只看该作者
回复 20# chenteng168

这个不保证顺序:
  1. awk -F\| '{if(!($1 in a) || $2<a[$1])a[$1]=$2} END{for(i in a)print i""FS""a[i]""FS}' i
复制代码
按第一列字符顺序用这个:

  1. awk -F\| '{if(!($1 in a) || $2<a[$1])a[$1]=$2} END{len=asorti(a,ta);for(i=1;i<=len;i++)print ta[i]""FS""a[ta[i]]""FS}' i
复制代码

论坛徽章:
0
22 [报告]
发表于 2016-06-30 11:48 |只看该作者
本帖最后由 chenteng168 于 2016-06-30 11:59 编辑

回复 20# chenteng168

论坛徽章:
0
23 [报告]
发表于 2016-06-30 11:58 |只看该作者
回复 4# Herowinter


    很给力!现在又有一个问题麻烦你了--!
A00000000001|1.3|1.2|1.4|1.3|
A00000000001|1.3|1.5|1.6|1.5|
A00000000002|1.3|1.5|1.6|1.5|
我想通过第一列关键列求后面每列的和,实际文件中有N列、N行,排序和不排序都来个吧,谢谢朋友
结果:
A00000000001|2.6|2.7|3.0|2.8|
A00000000002|1.3|1.5|1.6|1.5|

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
24 [报告]
发表于 2016-06-30 12:10 |只看该作者
回复 23# chenteng168

不排序:

  1. awk -F\| '{a[$1];for(i=2;i<NF;i++)b[$1,i]+=$i} END{for(i in a){printf i;for(j=2;j<NF;j++)printf("|%.1f",b[i,j]);print FS}}' i
  2. A00000000001|2.6|2.7|3.0|2.8|
  3. A00000000002|1.3|1.5|1.6|1.5|
复制代码
排序

  1. awk -F\| '{a[$1];for(i=2;i<NF;i++)b[$1,i]+=$i} END{len=asorti(a,ta);for(i=1;i<=len;i++){printf ta[i];for(j=2;j<NF;j++)printf("|%.1f",b[ta[i],j]);print FS}}' i
  2. A00000000001|2.6|2.7|3.0|2.8|
  3. A00000000002|1.3|1.5|1.6|1.5|
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP