解析特定值的日志文件

时间:2016-06-08 18:18:56

标签: r parsing

我正在尝试解析许多日志文件以获取特定值。我正在做的是打开文件,然后抓取我需要的数据。然后我想在文本文件中写出特定数据,用于进一步分析。 这是我最初在做的事情:

#Select Copy From Dir, Change \\ to /
copyfrom<-gsub("\\\\","/",choose.dir(default = "", caption = "Select folder you wish to copy files from"))
#File names
listfiles<-list.files(copyfrom)
#Total amount of files
totalfiles=length(listfiles)

这意味着总文件将是我选择的目录中的所有文件的列表(包含日志文件的文件)。 然后使用listfiles [1],我可以打开一个特定的文件。对于此示例,我们只关注1个文件,但在我的脚本中,我将循环读取所有文件。 接下来,我想打开与该文件的连接并读取所有值。

 con <- file(paste0(copyfrom,"/",listfiles[totalfiles]))
  #open connection to file
  open(con); 
  #read file
  read <- readLines(con)

当我这样做时,我得到了这个:

> read
[1] "batch_name\tquant_id\tinstrument\tstandard_r_squared\tstandard_intercept\tstandard_slope\tmedian_ccn_pg_ul\tqc_status\tqc_reason\tinitiated"
[2] "B01042016_1\t79741\t1\t0.9986341\t-0.057213258\t0.966673255\t31.4047947\tpass\t\t2016-04-01T13:55:57+02:00"    

在该日志文件中有两行。一行由[1]表示,另一行由[2]表示。从那里我打开第2行(这是我所有感兴趣的)

> read[2]
[1] "B01042016_1\t79741\t1\t0.9986341\t-0.057213258\t0.966673255\t31.4047947\tpass\t\t2016-04-01T13:55:57+02:00"

好的,这就是我被困住的地方。我需要从这个字符串中获取3个值。一个是t0.9986341,另一个是t \ t2016-04-01T13:55:57 + 02:00。第一个值表示一些计算,另一个值表示日期。我想要的是这两个数字被粘贴在一些文本文件中。现在粘贴到变量就好了。我很难分割那一串字符。 我想知道如何识别该字符串中的特定值,对于t0.9986341,我尝试读取[2,1]但它没有用。任何其他建议。对不起,如果这很长,但我想完全表达我的想法。谢谢。

0 个答案:

没有答案