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.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 28 Sep. 2017

1 Stimme

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 Kommentare

Cedric
Cedric am 28 Sep. 2017
Bearbeitet: Cedric am 28 Sep. 2017
It would probably work with the shorter pattern:
'(?<=IMPES:\s*)\S+'
Probably Yes ;-) But just in case there is another IMPES: in the file...
Cedric
Cedric am 28 Sep. 2017
Bearbeitet: Cedric am 28 Sep. 2017
That's not IMPESsible! ;-)
haisheng yu
haisheng yu am 28 Sep. 2017
Thanks a lot. I just run this code return the NaN. I will take a look of the regexp function. Thanks again.
Cedric
Cedric am 28 Sep. 2017
Bearbeitet: Cedric am 28 Sep. 2017
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by