Borrar filtros
Borrar filtros

How to copy a line from multiple files

3 visualizaciones (últimos 30 días)
viet le
viet le el 23 de Mzo. de 2017
Editada: Stephen23 el 26 de Abr. de 2021
Hello everyone. I have 360 files(.o) (from test(0).o-test(360).o), as figure. I want to copy a line (red framed) and put it in the new .txt file (ordinarily from 0 to 360 means in 361 lines)
Could you guys help me how to do that.
Thank a lot.
  2 comentarios
KSSV
KSSV el 23 de Mzo. de 2017
Is the line number always same in all the files?
viet le
viet le el 23 de Mzo. de 2017
yes, they are totally the same

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 23 de Mzo. de 2017
Editada: Stephen23 el 26 de Abr. de 2021
Assuming that that line is uniquely identified by the word 'total' and the line always has the same format, then you can use fileread and regexp in a loop. Here is an outline to get you started (untested):
P = 'dirpath';
S = dir(fullfile(P,'*.o'));
%S = natsortfiles(S); % optional, see comment below
fmt = '\n\s+total\s+(\S+)\s+(\S+)';
for k = 1:numel(S)
F = fullfile(P,S(k).name);
str = fileread(F);
C = regexp(str,fmt,'tokens','once');
vec = str2double(C)
..
end
If you want to process the filenames in the order of the numbers in their names, then you can use my FEX submission natsortfiles:
  1 comentario
viet le
viet le el 24 de Mzo. de 2017
Editada: viet le el 24 de Mzo. de 2017
Could you help me see where am I wrong, please?
https://uk.mathworks.com/matlabcentral/answers/331720-help-copy-a-line-from-a-file

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by