Clear Filters
Clear Filters

regexp and string rearrange in text file

1 view (last 30 days)
I have a .txt file which has about 350 lines. The content is the .txt file is in following format
Open loop test -19-06-2014
Current Injection 2 -18-06-2014
Parameter sweep -17-06-2014
Controlled input -16-06-2014
Open loop test 2 -14-06-2014
I need to take the date to the beginning of each line and change the format to yyyy/mm/dd
ie in following format
2014/06/19 Open loop test
2014/06/18 Current Injection 2
Following is the code I have so far
%open file
fid =fopen('lsit2.txt');
% search for date string and updating the format
for k=1:size(C{1,1},1) % repeat for each line
date = regexp(str, '(\d+)-(\d+)-(\d+)', 'tokens');
newdate_format= sprintf('%s/%s/%s',date{1,1}{3},date{1,1}{2},date{1,1}{1});
Could someone help me to modify the code further to
1) To change the position of date
2) save the updated values to the .txt file

Accepted Answer

Alfonso Nieto-Castanon
Alfonso Nieto-Castanon on 16 Jul 2014
Edited: Alfonso Nieto-Castanon on 16 Jul 2014
something along these lines:
% reads file into cell array
lines = textread('lsit2.txt','%s','delimiter','\n','whitespace','');
% changes format
lines = regexprep(lines, '(.*)-(\d+)-(\d+)-(\d+)','$4/$3/$2 $1');
% saves new file
f = fopen('newfile.txt','wt');

More Answers (0)


Community Treasure Hunt

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

Start Hunting!