免费注册 查看新帖 |

Chinaunix

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

[文本处理] 计数问题求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-10-10 17:34 |只看该作者 |倒序浏览
有一个文本a:
A        1
A        2
A        3
A        4
A        5
A        6
A        7
A        8
A        9
A        10
B        11
B        12
B        13
B        14
B        15
B        16
B        17
C        18
C        19
C        20
C        21
C        22
C        23
C        24
C        25
C        26
C        27
D        28
D        29
D        30
D        31
D        32
D        33
D        34
D        35


现要取每个字母前5行的数据,输出如下:
A        1
A        2
A        3
A        4
A        5
B        11
B        12
B        13
B        14
B        15
C        18
C        19
C        20
C        21
C        22
C        23
D        28
D        29
D        30
D        31
D        32


awk应该怎么写才好了,求助,在这谢谢大家了

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
2 [报告]
发表于 2016-10-10 17:55 |只看该作者
  1. awk 'a[$1]++<5'
复制代码

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-09-07 06:20:00程序设计版块每日发帖之星
日期:2015-09-07 06:20:00
3 [报告]
发表于 2016-10-10 19:10 |只看该作者
  1. [root@CentOS_6 tmp]# cat 1.txt
  2. A        1
  3. A        2
  4. A        3
  5. A        4
  6. A        5
  7. A        6
  8. A        7
  9. A        8
  10. A        9
  11. A        10
  12. B        11
  13. B        12
  14. B        13
  15. C        18
  16. C        19
  17. C        20
  18. C        21
  19. C        22
  20. C        23
  21. C        24
  22. C        25
  23. C        26
  24. C        27
  25. D        28
  26. D        29
  27. D        30
  28. D        31
  29. D        32
  30. D        33
  31. D        34
  32. D        35
  33. [root@CentOS_6 tmp]# cat extract.awk
  34. BEGIN{f=1;F=2}
  35. {
  36.   if(f==1){
  37.     i=$1
  38.     print $0
  39.     f=0
  40.     next
  41.   }
  42.   if(F<=5)
  43.   {
  44.     if(i==$1){
  45.       print $0
  46.       F++
  47.       next
  48.     }
  49.   }
  50.   if(i!=$1){
  51.     print $0
  52.     F=2
  53.     i=$1
  54.   }
  55. }
  56. [root@CentOS_6 tmp]# awk -f extract.awk 1.txt
  57. A        1
  58. A        2
  59. A        3
  60. A        4
  61. A        5
  62. B        11
  63. B        12
  64. B        13
  65. C        18
  66. C        19
  67. C        20
  68. C        21
  69. C        22
  70. D        28
  71. D        29
  72. D        30
  73. D        31
  74. D        32
复制代码

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
4 [报告]
发表于 2016-10-10 20:20 |只看该作者

  1. perl -0pe 's/^(?:([a-z]).*\n){1,5}\K(?:\1.*\n)*//gim' f
复制代码

论坛徽章:
0
5 [报告]
发表于 2016-10-10 21:30 |只看该作者
回复 2# haooooaaa

简洁方便,厉害

论坛徽章:
0
6 [报告]
发表于 2016-10-10 21:31 |只看该作者
回复 3# zy86416779

提供的思路很好,谢谢分享

论坛徽章:
0
7 [报告]
发表于 2016-10-10 21:32 |只看该作者
回复 4# sunzhiguolu

perl 好强大!

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
8 [报告]
发表于 2016-10-11 09:46 |只看该作者
本帖最后由 moperyblue 于 2016-10-11 09:47 编辑
  1. sed -r '/\n/!{:a;s/((\n[^\n]*){4}).*/\1/;N;/(\S+\b).*\n\1[^\n]*$/ba};P;D' a
复制代码

论坛徽章:
0
9 [报告]
发表于 2016-10-11 15:38 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP