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

Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by