免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1419 | 回复: 6

[文本处理] 文本处理 [复制链接]

论坛徽章:
1
卯兔
日期:2013-12-09 08:47:37
发表于 2012-10-29 15:17 |显示全部楼层
本帖最后由 mingming_song 于 2012-10-30 09:52 编辑

1111111111111111

论坛徽章:
71
15-16赛季CBA联赛之同曦
日期:2018-08-23 15:41:42辰龙
日期:2014-08-15 09:07:43狮子座
日期:2014-06-03 13:55:33亥猪
日期:2014-06-02 11:17:08巨蟹座
日期:2014-05-06 10:02:03午马
日期:2014-05-04 08:18:27亥猪
日期:2014-04-29 11:11:32技术图书徽章
日期:2014-04-24 15:51:26技术图书徽章
日期:2014-04-17 11:01:53辰龙
日期:2014-04-15 12:45:46亥猪
日期:2014-04-11 09:06:23射手座
日期:2014-04-01 15:28:10
发表于 2012-10-29 18:05 |显示全部楼层
我只看到   天上人间

论坛徽章:
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
发表于 2012-10-30 09:33 |显示全部楼层
http://xwb.gyyx.cn/
敢情楼主是光宇的呐。

论坛徽章:
1
卯兔
日期:2013-12-09 08:47:37
发表于 2012-10-30 09:34 |显示全部楼层
回复 3# seesea2517


    呵呵,是啊,之前shell一直用,后来很长一段时间不用了,真心忘得差不多了

论坛徽章:
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
发表于 2012-10-30 09:38 |显示全部楼层
看需要,相当于你是要按照故障的类型做一个汇总吗?

论坛徽章:
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
发表于 2012-10-30 10:56 |显示全部楼层
不确定是不是你所要,也不知道结果对不对,你确认一下:
  1. [seesea@UC log]$ awk -f log.awk  duanxin.txt
  2. 故障总数:10
  3. 故障id:463
  4. 发生时间:2012-10-15 08:19
  5. 发现时间:08:04
  6. 发送短信时间:2012-10-15 8:21:35

  7. 故障总数:40
  8. 故障id:454
  9. 发生时间:2012-10-09 13:22
  10. 发现时间:13:22
  11. 发送短信时间:2012-10-9 13:44:15

  12. 故障总数:1
  13. 故障id:456
  14. 发生时间:2012-10-07 20:02
  15. 发现时间:20:02
  16. 发送短信时间:2012-10-10 11:29:04

  17. 故障总数:24
  18. 故障id:466
  19. 发生时间:2012-10-16 23:51
  20. 发现时间:23:46
  21. 发送短信时间:2012-10-16 23:56:25

  22. 故障总数:9
  23. 故障id:460
  24. 发生时间:2012-10-09 21:01
  25. 发现时间:20:47
  26. 发送短信时间:2012-10-9 21:14:43

  27. 故障总数:14
  28. 故障id:451
  29. 发生时间:2012-10-05 12:24
  30. 发现时间:12:30
  31. 发送短信时间:2012-10-5 13:11:19

  32. 故障总数:13
  33. 故障id:452
  34. 发生时间:2012-10-07 03:03
  35. 发现时间:03:10
  36. 发送短信时间:2012-10-7 3:24:28
复制代码
  1. BEGIN {
  2.     state = -1
  3. }

  4. /故障提醒:故障ID为/ {
  5.     change_state()
  6.     if (! is_state_right(0))
  7.     {
  8.         reset_state()
  9.         next
  10.     }

  11.     if (match($0, /[0-9]+/) == 0)
  12.     {
  13.         reset_stat()
  14.         next
  15.     }

  16.     id = substr($0, RSTART, RLENGTH)
  17. }

  18. /^发生:/ {
  19.     change_state()
  20.     if (! is_state_right(1))
  21.     {
  22.         reset_state()
  23.         next
  24.     }

  25.     sub(/发生:/, "", $0)
  26.     occur = $0
  27. }

  28. /^发现:/ {
  29.     change_state()
  30.     if (! is_state_right(2))
  31.     {
  32.         reset_state()
  33.         next
  34.     }

  35.     sub(/发现:/, "", $0)
  36.     found = $0
  37. }

  38. /正式通知 接收时间:/ {
  39.     change_state()
  40.     is_state_right(3)
  41.     if (! is_state_right(3))
  42.     {
  43.         reset_state()
  44.         next
  45.     }

  46.     sub(/.*正式通知 接收时间:/, "", $0)
  47.     receive = $0

  48.     save_record()
  49. }

  50. END {
  51.     print_records()
  52. }

  53. function change_state() {
  54.     state = (state + 1) % 4
  55. }

  56. function is_state_right(dest) {
  57.     if (state == dest)
  58.     {
  59.         return 1
  60.     }

  61.     return 0
  62. }

  63. function reset_state() {
  64.     state = -1
  65. }

  66. function save_record()
  67. {
  68.     ++id_index[id]
  69.     if (id_index[id] > 1)
  70.         return

  71.     records[id,"occur"]   = occur
  72.     records[id,"found"]   = found
  73.     records[id,"receive"] = receive
  74. }

  75. function print_records() {
  76.     for (id in id_index)
  77.     {
  78.         print "故障总数:" id_index[id]
  79.         print "故障id:" id
  80.         print "发生时间:" records[id,"occur"]
  81.         print "发现时间:" records[id,"found"]
  82.         print "发送短信时间:" records[id,"receive"]
  83.         print ""
  84.     }
  85. }
复制代码

论坛徽章:
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
发表于 2012-10-30 10:57 |显示全部楼层
我觉得代码已经自解释了,就不多解释哈。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP