Create function to extract data from .log file

Dear all,
I want to write a function can extract data from log file. It like that
The number marked yellow is the number what I want to output and then used to do the calculate. I would really appreciate that if anyone can provide any help.
Thanks in advance.

 采纳的回答

S = fileread('NameOfYourLogFileGoesHere.log');
value_of_interest_string = regexp('(?<=it\.it-nin\.icytot\.nrep2\.mtfail\.IMPES:\s*)\S+', 'match');
value_of_interest = str2double(value_of_interest_string);
This code does not assume that the value is an integer, just that it appears after the mtfail.IMPES: string and ends in whitespace.

7 个评论

It would probably work with the shorter pattern:
'(?<=IMPES:\s*)\S+'
Probably Yes ;-) But just in case there is another IMPES: in the file...
That's not IMPESsible! ;-)
Thanks a lot. I just run this code return the NaN. I will take a look of the regexp function. Thanks again.
There is a typo that I didn't spot: the first argument in the call to REGEXP should be the content to parse, which is variable S. Try with the following:
S = fileread('NameOfYourLogFileGoesHere.log');
value_of_interest_string = regexp(S, '(?<=it\.it-nin\.icytot\.nrep2\.mtfail\.IMPES:\s*)\S+', 'match');
value_of_interest = str2double(value_of_interest_string);
and/or with the simpler pattern that I proposed:
S = fileread('NameOfYourLogFileGoesHere.log');
value_of_interest_string = regexp(S, '(?<=IMPES:\s*)\S+', 'match');
value_of_interest = str2double(value_of_interest_string);
Thanks a lot. It really help a lot. I also solved a way
Str = fileread('WH Generated path_09.log');
Key = 'it,it-nin,icytot,nrep2,mtfail,IMPES:';
Index = strfind(Str,Key);
Value =sscanf(Str(Index(1)+length(Key):end),'%g',1);
Yes, sorry, I missed the S in the regexp call.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Characters and Strings 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by