我有一个从PLC转储出来的每日日志文件,示例文本是(它没有标题,只有原始数据):
5/29/2009 3:05:33 PM: PLC Requested Hand Scan
5/29/2009 3:05:40 PM: HH Label Data Retrieved: 078797312
5/29/2009 3:05:40 PM: PLC Requested Scale Weight
5/29/2009 3:05:40 PM: Scale Data Retrieved: 56.0
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 1
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:40 PM: Read: False
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 2
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:40 PM: Read: True
5/29/2009 3:05:40 PM: Found Bin02
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 3
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:40 PM: Read: False
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 4
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:40 PM: Read: False
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 5
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: ProcessMOSData Loop: 6
5/29/2009 3:05:41 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: ProcessMOSData Loop: 7
5/29/2009 3:05:41 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: ProcessMOSData Loop: 8
5/29/2009 3:05:41 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: ProcessMOSData Loop: 9
5/29/2009 3:05:41 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: Got all data
5/29/2009 3:05:41 PM: Wrote good label ack我有15个“关键短语”想要数一数。我有1150个文本文件,我可能会将它们合并到一个大的文本文件中,然后在初始读取后将其读取并转储到新的表中。它可以输出到csv或sql,这并不重要。最后一部分将只是监控流程更改的改进如何提高该领域的效率。
例如,关键短语之一是"PLC请求手动扫描“,因此在示例中它将为5/29/2009 1次。我认为顶部的标题将是关键短语,左侧将是不同的日期。这似乎是logparser可以做的事情,但是没有头部,每行只是一个长字符串,我不确定如何开始。
发布于 2013-10-05 11:45:37
是的,你可以使用LogParser来解决这个问题。为了轻松获得正确的查询,安装Logparser蜥蜴,这是一个简单而免费的工具,你可以在LogParser上测试你的查询,然后再编码。
将Logparser输入设置为文本行输入格式。
在FROM子句中,您可以根据需要连接任意多个文件,如'filename‘、'filename2’、'filename3‘等(所有文件必须具有相同的结构)
下面是一个logparser查询,它将帮助您开始
SELECT extract_token(Text,0,' ') AS Date,
strcat(extract_token(extract_token(Text,1,' '),0,'PM: '),' PM') AS Time,
extract_token(Text,1,'PM: ') AS MSG
FROM 'F:\test.txt'您也可以按msg分组,这样做
SELECT extract_token(Text,1,'PM: ') AS MSG
FROM 'F:\test.txt'
GROUP BY MSGhttps://stackoverflow.com/questions/16064036
复制相似问题