How do I loop this?

1 view (last 30 days)
Christian Jubilee Nelson B. Alde
Commented: Rik on 3 Nov 2020
Attached above is the log file.
Here is the code. can anyone help me how do I loop this in a manner that it can extract the needed data from the log? Thank you.
fileID = fopen('logfile (1).txt', 'r');
data = textscan(fileID,'%s');
table = string(data{:});
k = 1;
fprintf("Host: %s\n", table(k,1));
fprintf("Username: %s\n", table(k+2,1));
fprintf("Time: %s %s", table(k+3,1)+table(k+4,1));
fprintf("\nRequest: %s %s %s \n", table(k+5,1)+table(k+6,1)+table(k+7,1));
Rik on 3 Nov 2020
In case you try any funny business here as well: there is now an archive of your question (which includes your attachment).

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 1 Nov 2020
fileread into a character vector. regexp with named tokens and the 'names' option to get back a struct array with the fields broken out.
After that either loop over the indices of the struct array, or else extract the struct fields into separate variables {data.Host} for example, and use compose to format the entries, strjoin to put a newline between the pieces, and fprintf the entire string at the same time.
There are also ways you could proceed using regexprep() that might be even easier.


Find more on Data Type Conversion in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!