我必须在带有R的大量日志文件中查找带有正则表达式的寄存器。
所有数据大约是1 Gb,我必须寻找一些注册表并将匹配添加到数据帧。
我正在做的是以下内容:
grep(paste("(Sending+.+message+.+1234567890+.+5000)", sep=""), dfLogs)
当我只为一个寄存器执行此操作时,这是正确的 当我尝试为所有搜索执行grep时:
dfTrx$RcvMessage <- paste("(Sending+.+message+.+", dfTrx$NUMBER, "+.+", dfTrx$AMOUNT,")", sep="")
dfReceived <- unique(grep(paste(dfTrx$RcvMessage, collapse="|"), dfLogs), value=TRUE)
我收到以下错误:
Error in grep(paste(dfTrx$RcvMessage, collapse = "|"), dfLogs) :
invalid regular expression '(Sending+.+message+.+1234567890+.+20)|(Sending+.+message+.+9876543210+.+20)|...
如何为所有值执行此正则表达式?我做错了什么?
数据示例:
2015年12月9日19:01:44717 - [DEBUG] [池-1-线程4450] [OutputHandler] 8发送(多个)消息:01XX765903091220151901440XXXX0000129D3A00003996101901442015120903857655184776733438000000200001XX765904091220151901440XXXX0000118BC100001839671901442015120903857655194251212137000000300001XX765905091220151901440XXXX000010E52A00003311451901442015120903857655203331836622000000200001XX765906091220151901440XXXX000011DCD300001972561901442015120903857655215522476419000000300001XX765907091220151901440XXXX000012980900003923951901442015120903857655225531194531000000500001XX765908091220151901440XXXX000010ED2200003882461901442015120903857655237351043626000000200001XX765909091220151901440XXXX000011BDBE00001656451901442015120903857655243312669477000000200001XX765910091220151901440XXXX00001211F3000024385819014420151209038576552598211945310000002000
我需要找到邮件的发送,以及邮件内容的数量和金额。