免费注册 查看新帖 |

Chinaunix

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

[文本处理] awk 统计 [复制链接]

论坛徽章:
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
11 [报告]
发表于 2013-01-07 09:45 |只看该作者
回复 6# davidbeckham921


    大小便失禁,牛!

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
12 [报告]
发表于 2013-01-07 10:33 |只看该作者
yestreenstars 发表于 2013-01-06 19:47
我也来写一个吧运行结果如下:


真心牛掰啊,学习了!~~

这样好!

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
13 [报告]
发表于 2013-01-07 10:37 |只看该作者
回复 6# davidbeckham921


    把代码放到code标签里面吧,否则论坛程序会弄丢一些字符。

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
14 [报告]
发表于 2013-01-07 10:40 |只看该作者
回复 13# Shell_HAT


    呵呵好!知道了老大。

论坛徽章:
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
15 [报告]
发表于 2013-01-07 13:51 |只看该作者
回复 6# davidbeckham921


    Sorry!

昨天没时间看。

后面可以这样简化:
  1. {
  2.     a[$1]++;
  3.     b[$1,a[$1]-1]=$2;
  4.     a[$1]>m?m=a[$1]:m=m
  5. }
  6. END{
  7.     for(i in a)
  8.         for (j in a)
  9.             for(k=0;k<=m;k++)
  10.                 if( i!=j && b[i,k]==b[j,k] && b[i,k]!="")
  11.                     c[i" "j]++;
  12.     for(i in c) print i,c[i];
  13. }
复制代码

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
16 [报告]
发表于 2013-01-07 15:35 |只看该作者
blackold 发表于 2013-01-07 13:51
回复 6# davidbeckham921


谢谢黑哥,明白了,昨天试了半天拼END没想到;就搞定了。

论坛徽章:
1
CU十四周年纪念徽章
日期:2015-12-16 18:25:16
17 [报告]
发表于 2014-02-08 16:42 |只看该作者
  1. [root@localhost ~]# cat 1.txt
  2. a        111
  3. b        111
  4. c        111
  5. d        111
  6. b        222
  7. c        222
  8. d        222
  9. [root@localhost ~]# awk '{
  10. >   a[$1,++b[$1]]=$2
  11. > }
  12. > END{
  13. >   for (i in b)
  14. >     for (j in b) {
  15. >       c=0
  16. >       if (i!=j) {
  17. >         for (m=1;m<=b[i];m++)
  18. >           for (k=1;k<=b[j];k++)
  19. >             if (a[i,m]==a[j,k])
  20. >               ++c
  21. >         print i,j,c
  22. >       }
  23. >     }   
  24. > }' 1.txt
  25. a b 1
  26. a c 1
  27. a d 1
  28. b a 1
  29. b c 2
  30. b d 2
  31. c a 1
  32. c b 2
  33. c d 2
  34. d a 1
  35. d b 2
  36. d c 2
  37. [root@localhost ~]#
复制代码

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
18 [报告]
发表于 2014-02-09 19:12 |只看该作者
  1. awk '{a[$2]=a[$2]?a[$2]FS$1:$1}END{for(i in a){l=split(a[i],b);for(j=1;j<=l;++j)for(k=j+1;k<=l;++k){s[b[k]" "b[j]]++;s[b[j]" "b[k]]++}}for(i in s)print i,s[i]}' file | sort
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP