免费注册 查看新帖 |

Chinaunix

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

[文本处理] 看能不能实现 【 已结案 】谢谢大神 [复制链接]

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
21 [报告]
发表于 2016-12-11 17:48 来自手机 |只看该作者
本帖最后由 Windows19 于 2016-12-11 17:50 编辑
moperyblue 发表于 2016-12-11 16:51
楼主 有空测一下这种方式


哈哈,测试了一下,还是大神你这个思路方法好,而且效率高速度飞快,出来结果非常正确

原谅我看得不明白,是不是一开始先做转码处理?然后排序标记行号,然后打印回原来行号,再截取第二列

细节还有看得不明白,能否请大神再说说工作过程细节?顺便向大神请教学习  
谢谢您

论坛徽章:
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
22 [报告]
发表于 2016-12-11 17:57 |只看该作者
回复 21# Windows19


几十G测试完了?

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
23 [报告]
发表于 2016-12-11 18:11 来自手机 |只看该作者
本帖最后由 Windows19 于 2016-12-11 18:30 编辑
moperyblue 发表于 2016-12-11 17:57
回复 21# Windows19




测试了小部份,估算了一下下1G也大概只是要10分钟左右    那个几十G的log也肯定能完成,推算了一下做那个几十G log也就300分钟左右,比用数据库还快!你这个思路代码,效率算很高的了,真厉害,佩服佩服

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
24 [报告]
发表于 2016-12-11 19:34 |只看该作者
回复 19# moperyblue


因我对大神的这个代码感兴趣,所以,特地准备了一个812M的文档
分别用三个代码实验
1、
sed = 8.txt|sed 'N;s/\n/\x00/' > 8.tmp
real    2m39.195s
user    3m44.921s
sys     0m1.746s
sort -t '\0' -k2,2 -u 8.tmp|sort -t'\0' -k1,1n|awk '{print $2}' FS=\\x00
real    7m56.619s
user    28m20.253s
sys     0m3.508s
2、
awk '! a[$0]++' 8.txt
real    0m36.754s
user    0m35.989s
sys     0m0.311s
3、
sort -u  8.txt
real    8m5.598s
user    27m12.082s
sys     0m2.386s

上面数据仅供参考,因为我运行代码的同时,还在干别的事情



另,14楼的代码我不会运行,所以,没参与测试




论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
25 [报告]
发表于 2016-12-11 19:34 |只看该作者
本帖最后由 bmne 于 2016-12-11 19:38 编辑

坛子不稳定,编辑掉


论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
26 [报告]
发表于 2016-12-11 19:35 |只看该作者
本帖最后由 bmne 于 2016-12-11 19:37 编辑

坛子不稳定,编辑掉

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
27 [报告]
发表于 2016-12-11 19:35 |只看该作者
本帖最后由 bmne 于 2016-12-11 19:37 编辑


坛子不稳定,编辑掉


论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
28 [报告]
发表于 2016-12-11 19:58 |只看该作者
@moperyblue
学习

@Windows19
我在用sed匹配删除行时没有用整行匹配模式/ ^     $/, 所以会导致:如果B行中包含子串A行,会在匹配A行时将B行删除。不过@moperyblue 的方法确实高效好几倍!

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
29 [报告]
发表于 2016-12-11 20:22 |只看该作者
本帖最后由 Windows19 于 2016-12-11 20:24 编辑

@bmne
原来你也需要对旧日志log去重分析?

我去重后减小了一大半工作量
$ time sed = Syslog.txt|sed 'N;s/\n/\x00/' > Syslog.tmp
real    0m0.016s
user    0m0.000s
sys     0m0.015s
$ time sort -t '\0' -k2,2 -u Syslog.tmp|sort -t'\0' -k1,1n|awk '{print $2}' FS=\\x00
##########################################################################
#                                System Log
# Time = 2016-12-11 20:11:38 133088s
# 1.0 00000000 : S-Ver = 5.2.0 Build 140613 Rel.34743n
# L = 192.168.1.1 : M = 255.255.255.0
# W1 = PPPoE : W = 10.0.0.103 : M = 255.255.255.255 : G = 10.0.0.1
# Cnt = 5504, Free = 5391, Busy = 113
  0days, 00:00:04, LAN: mirror0 set ip c0a80101 mask ffffff00
  0days, 00:00:05, System start ok.
  0days, 00:00:07, DHCPS: Send OFFER with ip 192.168.1.100
  0days, 00:00:10, DHCPS: Send OFFER with ip 192.168.1.101
  0days, 00:00:10, PPP LCP: TX TERMINATION_REQUEST.
  0days, 00:00:10, PPPOE: TX PADT.
  0days, 00:00:10, try special dail type: 0
  0days, 00:00:10, PPPOE: TX PADI.
  0days, 00:00:10, PPPOE: RX PADO,AC-NAME=WayOS_PPPoE,AC-MAC=80810067C6A0
  0days, 00:00:10, PPPOE: TX PADR.
  0days, 00:00:10, PPPOE: RX PADS.
real    0m0.031s
user    0m0.000s
sys     0m0.031s
$


论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
30 [报告]
发表于 2016-12-11 20:22 |只看该作者
本帖最后由 Windows19 于 2016-12-11 20:37 编辑
回复cao627

@cao627

也谢谢您 一开始还真以为大数据要用到数据库才能够实现(其实很多人也这样认为),但是这个规律就让moperyblue大神给打破了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP