集算器文本处理之不定行日志解析.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
集算器文本处理之不定行日志解析

集算器文本处理之不定行日志解析 在将日志文本解析成结构化数据时时,常会遇到记录由数量不定的多行组成的情况。这 种变换存在一定的复杂性,实现复杂度较高。集算器支持正则表达式、字串拆分、隔行取数、 横向拼接等灵活的结构化计算函数,适合处理此类文本。下面通过例子来看一下具体作法。 日志文件reportXXX.log 存储着若干记录,每条记录由多行构成,包括14 个数据项(字 段)。记录以字符串“Object Type ”开头。我们的目标是把该日志整理为结构化数据,并将 结果写入文本文件。部分源数据如下: Window Report for "aaa" Object Type: Symbol Location: left: 195 top: 11 right: 123 bottom: 15 Line Color: RGB ( 1 0 0 ) Fill Color: RGB ( 251 255 0 ) Link:l11 Type: Push Button - Action Script1 Condition Type: On Left Click/Key Down Statement: Call AufrufSchalter1( VEA_450P01.Name, SchalterH-0-A); Link:l12 Type: Disable - Discrete Expression1 Disabled When Expression is FALSE Object Type: Ploygon Location: left: 295 top: 26 right: 200 bottom: 20 Line Color: RGB ( 2 0 0 ) Fill Color: RGB ( 229 229 229 ) Link:l21 Type: Push Button - Action Script2 集算器代码: A 1 =file("e:\\reportXXX.log").read() 2 =A1.array("Object Type: ").to(2, ) 3 =A2.regex("(.+)[\\s\\S]+left: (.+)[\\s\\S]+top: (.+)[\\ s\\S]+right: (.+) bottom: (.+)[\\ s\\S]+Line Color:\\t\\t(.+)[\\s\\S]+Fill Color:\\t\\t(.+)[\\S\\ s]+?Link:(.+)[\\ s\\S]+?Type: (.+)[\\s\\S]+Condition Type: (.+)[\\ s\\S]+Statement:\\r\\n\\t+(.+)[\\ s\\S]+Link:(.+)[\\ s\\S]+Type: (.+)\\r\\n\\r\\ n\\r\\ n\\t([ \\S]+)"; objectType,left,top,right,bottom,lineColor,fillColor,ojbectLink,type,conditionType,state ment,statementLink,statementType,lastExpress) 4 =file("e:\\result.txt").export@t(A3) A1=file("e:\\reportXXX.log").read() 这句代码用来将日志文件全部读入内存,结算结果如下: A2=A1.array("Object Type: ").to(2, ) 这句代码可以分解为两部分。第一部分:将A1 按照”Object Type”分割为多个字符串, 代码为A1.array("Object Type: ") ,计算结果如下: 第一条数据无用,之后的每条数据都是一条有效记录,to(2,)表示取出第二条直至最后 一条数据。A2 的计算结果如下: A3= regex(正则表达式

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档