免费注册 查看新帖 |

Chinaunix

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

[文本处理] 提取数字并循环打印 [复制链接]

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
11 [报告]
发表于 2013-02-28 11:57 |只看该作者
yestreenstars 发表于 2013-02-28 11:24
回复 4# seesea2517

效率不一样的

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
12 [报告]
发表于 2013-02-28 12:18 |只看该作者
回复 11# waker


    你是说我改后的单行脚本和他的效率不一样?我用time测试了一下,是一样的啊~

论坛徽章:
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
13 [报告]
发表于 2013-02-28 12:22 |只看该作者
本帖最后由 blackold 于 2013-02-28 12:25 编辑

回复 12# yestreenstars


汗。看错了,t根本没有机会执行。

t啥是多余的。

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
14 [报告]
发表于 2013-02-28 12:23 |只看该作者
回复 9# seesea2517


    是啊,不过感觉效率好低啊,呵呵~

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
15 [报告]
发表于 2013-02-28 12:28 |只看该作者
  1. [root@localhost ~]# cat t
  2. s/([0-9]+) to ([0-9]+)/{\1..\2}/g
  3. s/^/echo /
  4. e

  5. :loop
  6.     s/([^0-9]*)( [0-9]+)( [0-9]+)/\1\2\n\1\3/
  7.     P
  8.     D
  9. tloop
  10. [root@localhost ~]# cat i
  11. port trunk allow-pass vlan 3 to 19 21 to 25 29 32 to 35 37 to 41 43 to 44 48 52 to 56 59 to 64 66 to 70
  12. [root@localhost ~]# time sed -rf t i
  13. port trunk allow-pass vlan 3
  14. port trunk allow-pass vlan 4
  15. port trunk allow-pass vlan 5
  16. port trunk allow-pass vlan 6
  17. port trunk allow-pass vlan 7
  18. port trunk allow-pass vlan 8
  19. port trunk allow-pass vlan 9
  20. port trunk allow-pass vlan 10
  21. port trunk allow-pass vlan 11
  22. port trunk allow-pass vlan 12
  23. port trunk allow-pass vlan 13
  24. port trunk allow-pass vlan 14
  25. port trunk allow-pass vlan 15
  26. port trunk allow-pass vlan 16
  27. port trunk allow-pass vlan 17
  28. port trunk allow-pass vlan 18
  29. port trunk allow-pass vlan 19
  30. port trunk allow-pass vlan 21
  31. port trunk allow-pass vlan 22
  32. port trunk allow-pass vlan 23
  33. port trunk allow-pass vlan 24
  34. port trunk allow-pass vlan 25
  35. port trunk allow-pass vlan 29
  36. port trunk allow-pass vlan 32
  37. port trunk allow-pass vlan 33
  38. port trunk allow-pass vlan 34
  39. port trunk allow-pass vlan 35
  40. port trunk allow-pass vlan 37
  41. port trunk allow-pass vlan 38
  42. port trunk allow-pass vlan 39
  43. port trunk allow-pass vlan 40
  44. port trunk allow-pass vlan 41
  45. port trunk allow-pass vlan 43
  46. port trunk allow-pass vlan 44
  47. port trunk allow-pass vlan 48
  48. port trunk allow-pass vlan 52
  49. port trunk allow-pass vlan 53
  50. port trunk allow-pass vlan 54
  51. port trunk allow-pass vlan 55
  52. port trunk allow-pass vlan 56
  53. port trunk allow-pass vlan 59
  54. port trunk allow-pass vlan 60
  55. port trunk allow-pass vlan 61
  56. port trunk allow-pass vlan 62
  57. port trunk allow-pass vlan 63
  58. port trunk allow-pass vlan 64
  59. port trunk allow-pass vlan 66
  60. port trunk allow-pass vlan 67
  61. port trunk allow-pass vlan 68
  62. port trunk allow-pass vlan 69
  63. port trunk allow-pass vlan 70

  64. real    0m0.769s
  65. user    0m0.054s
  66. sys     0m0.534s
  67. [root@localhost ~]# time sed -r 's/([0-9]+) to ([0-9]+)/{\1..\2}/;s/^/echo /e;:1;s/([^0-9]*)( [0-9]+)( [0-9]+)/\1\2\n\1\3/;P;D' i
  68. port trunk allow-pass vlan 3
  69. port trunk allow-pass vlan 4
  70. port trunk allow-pass vlan 5
  71. port trunk allow-pass vlan 6
  72. port trunk allow-pass vlan 7
  73. port trunk allow-pass vlan 8
  74. port trunk allow-pass vlan 9
  75. port trunk allow-pass vlan 10
  76. port trunk allow-pass vlan 11
  77. port trunk allow-pass vlan 12
  78. port trunk allow-pass vlan 13
  79. port trunk allow-pass vlan 14
  80. port trunk allow-pass vlan 15
  81. port trunk allow-pass vlan 16
  82. port trunk allow-pass vlan 17
  83. port trunk allow-pass vlan 18
  84. port trunk allow-pass vlan 19
  85. port trunk allow-pass vlan 21
  86. port trunk allow-pass vlan 22
  87. port trunk allow-pass vlan 23
  88. port trunk allow-pass vlan 24
  89. port trunk allow-pass vlan 25
  90. port trunk allow-pass vlan 29
  91. port trunk allow-pass vlan 32
  92. port trunk allow-pass vlan 33
  93. port trunk allow-pass vlan 34
  94. port trunk allow-pass vlan 35
  95. port trunk allow-pass vlan 37
  96. port trunk allow-pass vlan 38
  97. port trunk allow-pass vlan 39
  98. port trunk allow-pass vlan 40
  99. port trunk allow-pass vlan 41
  100. port trunk allow-pass vlan 43
  101. port trunk allow-pass vlan 44
  102. port trunk allow-pass vlan 48
  103. port trunk allow-pass vlan 52
  104. port trunk allow-pass vlan 53
  105. port trunk allow-pass vlan 54
  106. port trunk allow-pass vlan 55
  107. port trunk allow-pass vlan 56
  108. port trunk allow-pass vlan 59
  109. port trunk allow-pass vlan 60
  110. port trunk allow-pass vlan 61
  111. port trunk allow-pass vlan 62
  112. port trunk allow-pass vlan 63
  113. port trunk allow-pass vlan 64
  114. port trunk allow-pass vlan 66
  115. port trunk allow-pass vlan 67
  116. port trunk allow-pass vlan 68
  117. port trunk allow-pass vlan 69
  118. port trunk allow-pass vlan 70

  119. real    0m0.645s
  120. user    0m0.042s
  121. sys     0m0.533s
复制代码
请二位对比一下~时间是差不多的~
@waker
@blackold

论坛徽章:
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
16 [报告]
发表于 2013-02-28 12:29 |只看该作者
回复 15# yestreenstars


    看错了。t没有机会执行,确实是多余的。

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
17 [报告]
发表于 2013-02-28 12:55 |只看该作者
回复 15# yestreenstars


    想当然了,是一样的

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
18 [报告]
发表于 2013-02-28 13:19 |只看该作者
@yestreenstars@waker@blackold
对 D 的操作没有认识透彻,想当然了我。让 t 操作不成为多余的话,改成这样,效率会高一点:
  1. [seesea@UC ~]$ time sed -rf num2.sed fi > /dev/null

  2. real    0m0.007s
  3. user    0m0.004s
  4. sys     0m0.003s
  5. [seesea@UC ~]$ time sed -rf num.sed fi > /dev/null

  6. real    0m0.108s
  7. user    0m0.064s
  8. sys     0m0.040s
  9. [seesea@UC ~]$ cat num2.sed
  10. s/([0-9]+) to ([0-9]+)/{\1..\2}/g
  11. s/^/echo /
  12. e

  13. :loop
  14.     s/([^0-9]*)( [0-9]+)( [0-9]+)/\1\2\n\1\3/
  15.     P
  16.     s/[^\n]*\n//
  17. tloop
复制代码

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
19 [报告]
发表于 2013-02-28 13:21 |只看该作者
@waker@blackold@yestreenstars

回复 18# seesea2517


    看见 sed -rf 突然一惊,然后想到,哦,不是 rm,还好还好,阿米豆腐。

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
20 [报告]
发表于 2013-02-28 13:37 |只看该作者
回复 18# seesea2517


    确实快多了~不过最后那里多输出一行了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP