Trying to delete lines that start with an alphabet on a text file

1 view (last 30 days)
Hi folks,
I have a huge textfile right here with around 100k lines and I am trying to delete all the lines that start with an alphabet (not deleting the ones that start with numbers). Can anybody help? I am having trouble structuring the m file.
Thanks.

Accepted Answer

Guillaume
Guillaume on 20 Oct 2014
Edited: Guillaume on 20 Oct 2014
Use fopen, fgetl, fclose to read your file into a cell array and discard the lines you don't want. Or if you want to write a new file, use fopen, fprintf, fclose and write as your read:
fidi = fopen('somefile.txt', 'rt');
fido = fopen('newfile.txt', 'wt');
tline = fgetl(fidi);
while ischar(tline)
if ~isempty(tline) && tline(1) >= '0' && tline(1) <= '9'
%line to keep
fprintf(fido, '%s\n', tline);
end
tline = fgetl(fidi);
end
fclose(fidi);
fclose(fido);
edit: forgot to read the next line!
  2 Comments
mt
mt on 20 Oct 2014
I tried it with a smaller text file, but 'Run' never ends for this code. What could be wrong?
Guillaume
Guillaume on 20 Oct 2014
Yep, I forgot a
tline = fgetl(tline);
within the loop. (You could have found that out in the documentation of fgetl that I linked).
I've edited my answer.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!