免费注册 查看新帖 |

Chinaunix

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

[文本处理] 能加快吗 [复制链接]

论坛徽章:
3
15-16赛季CBA联赛之八一
日期:2017-12-29 13:06:2315-16赛季CBA联赛之天津
日期:2018-08-08 17:39:4619周年集字徽章-年
日期:2019-12-25 22:50:31
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2018-08-24 12:57 来自手机 |只看该作者 |倒序浏览
本帖最后由 aaaa_123 于 2018-08-24 13:06 编辑

thanks1sorryhello57
hello0347hel
my2god367
hello03470000
打印出重复2次以上或者3次以上字符
hello0347hel
hello03470000
写了一个,好像不够快,不知道是不是自己思维算法问题

希望能得到加快速度

awk -vm=3 '{max=0;delete a;for(i=1;i<=length($0);i++)a[substr($0,i,1)]++;for(i in a)if(a>max)max=a}'

thanks

论坛徽章:
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
2 [报告]
发表于 2018-08-24 13:11 |只看该作者
hello0347hel
hello03470000
能否详细介绍一下规律是什么,为啥这些字符满足要求而其它不满足?

论坛徽章:
3
15-16赛季CBA联赛之八一
日期:2017-12-29 13:06:2315-16赛季CBA联赛之天津
日期:2018-08-08 17:39:4619周年集字徽章-年
日期:2019-12-25 22:50:31
3 [报告]
发表于 2018-08-24 13:31 来自手机 |只看该作者
本帖最后由 aaaa_123 于 2018-08-24 13:44 编辑
Shell_HAT 发表于 2018-08-24 13:11
hello0347hel
hello03470000
能否详细介绍一下规律是什么,为啥这些字符满足要求而其它不满足?


就是找出重复字符
hello0347hel这个l重复了3次,所以它满足条件
hello03470000这个0重复了5次,也满足3次以上条件

例如adgjana
a它重复了3次,所以条件就满足了


thanks1sorryhello57这行最多重复了2次,条件不足
my2god367这行也是条件不足
这2行它们每一个都不满足重复3次以上字符条件

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
4 [报告]
发表于 2018-08-24 14:41 |只看该作者
本帖最后由 1cpuer 于 2018-08-24 20:18 编辑
  1. # Bash: /home/soio/1bs # 2018-08-24 11:26:41 #1535081201
  2. # vim A_123

  3. # Bash: /home/soio/1bs # 2018-08-24 14:37:53 #1535092673
  4. # awk -vm=3 '{max=0;delete a;for(i=1;i<=length($0);i++)a[substr($0,i,1)]++;for(i in a)if(a>max)max=a}' A_123
  5. awk: 命令行:1: (FILENAME=A_123 FNR=1) 致命错误: 试图在标量环境中使用数组“a”

  6. ## for(i in a) #----a[i] 数组..

  7. # Bash: /home/soio/1bs # 2018-08-24 14:38:14 #1535092694
  8. # awk '{print substr($0,i,1)}' A_123
  9. t
  10. h
  11. m
  12. h


  13. # Bash: /home/soio/1bs # 2018-08-24 14:46:08 #1535093168
  14. # cat A_123
  15. thanks1sorryhello57
  16. hello0347hel
  17. my2god367
  18. hello03470000

  19. m=3 ---- ??
  20. 每行重复字符 >= 3
  21. 无法加速

  22. # Bash: /home/soio/1bs # 2018-08-24 20:05:14 #1535112314
  23. # awk -vm=3 '{max=0;delete a;for(i=1;i<=length($0);i++)a[substr($0,i,1)]++;for(i in a)if(a[i]>max)max=a[i]}max>=m' A_123
  24. hello0347hel
  25. hello03470000

  26. # very NEW 居然在1个{action} 完成

复制代码


论坛徽章:
8
CU十四周年纪念徽章
日期:2017-08-28 17:16:1915-16赛季CBA联赛之北控
日期:2018-03-29 11:39:0615-16赛季CBA联赛之上海
日期:2018-05-21 10:46:10技术图书徽章
日期:2018-09-03 13:54:18技术图书徽章
日期:2018-09-03 13:54:2815-16赛季CBA联赛之四川
日期:2020-10-15 09:21:4720周年集字徽章-20	
日期:2020-10-28 13:53:0220周年集字徽章-庆
日期:2020-10-28 14:09:12
5 [报告]
发表于 2018-08-24 14:56 |只看该作者
本帖最后由 龙牙地主天 于 2018-08-24 15:08 编辑

回复 1# aaaa_123

  1. awk -F '' '{for(i=1;i<=NF;i++) {a[$i]++;if(a[$i]>=3) {print $0;delete a;next}}}' file
复制代码

论坛徽章:
3
15-16赛季CBA联赛之八一
日期:2017-12-29 13:06:2315-16赛季CBA联赛之天津
日期:2018-08-08 17:39:4619周年集字徽章-年
日期:2019-12-25 22:50:31
6 [报告]
发表于 2018-08-24 19:51 |只看该作者

sorry
awk -vm=3 '{max=0;delete a;for(i=1;i<=length($0);i++)a[substr($0,i,1)]++;for(i in a)if(a>max)max=a}max>=m'



论坛徽章:
3
15-16赛季CBA联赛之八一
日期:2017-12-29 13:06:2315-16赛季CBA联赛之天津
日期:2018-08-08 17:39:4619周年集字徽章-年
日期:2019-12-25 22:50:31
7 [报告]
发表于 2018-08-24 19:55 |只看该作者
回复 4# 1cpuer

sorry在6楼补正

论坛徽章:
3
15-16赛季CBA联赛之八一
日期:2017-12-29 13:06:2315-16赛季CBA联赛之天津
日期:2018-08-08 17:39:4619周年集字徽章-年
日期:2019-12-25 22:50:31
8 [报告]
发表于 2018-08-24 19:59 |只看该作者
回复 5# 龙牙地主天

thanks试了一下
3b7k
q1w9e8x4p0s5c7i2v
碰上这样的不行,是不是没考虑到呢

但还是算比较快的

论坛徽章:
3
15-16赛季CBA联赛之八一
日期:2017-12-29 13:06:2315-16赛季CBA联赛之天津
日期:2018-08-08 17:39:4619周年集字徽章-年
日期:2019-12-25 22:50:31
9 [报告]
发表于 2018-08-24 23:49 |只看该作者



引用‘’
# very NEW 居然在1个{action} 完成‘
大侠之所以效率非常慢呗,还能加快吗

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
10 [报告]
发表于 2018-08-25 08:02 |只看该作者
本帖最后由 1cpuer 于 2018-08-27 10:32 编辑
  1. # Bash: /home/soio/1bs # 2018-08-25 09:16:21 #1535159781
  2. # awk 'm=3{max=0;delete a;{for(i=1;i<=length($0);i++)a[substr($0,i,1)]++;{for(i in a)if(a[i]>max)max=a[i]}}}max>=m' A_123
  3. hello0347hel
  4. hello03470000















复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP