Borrar filtros
Borrar filtros

How can I split a file at defined intervals into multiple files?

4 visualizaciones (últimos 30 días)
Max90
Max90 el 16 de Ag. de 2021
Comentada: Max90 el 18 de Ag. de 2021
Hi Matlab Community,
I am trying to split a file (see example included) at defined line intervals, e.g. every 4th line and safe the sequence of lines in a new file with increasing numbers in the filename. For example, I am trying to split a file with 40 lines of text into 10 files with 4 lines each and name the resulting files 1.txt, 2.txt, 3.txt. etc.
I have not included code as my attempts have not resulted in anything useful.
I am very grateful for any help and suggestions how to achieve this.
Thank you,
Max

Respuesta aceptada

Wan Ji
Wan Ji el 17 de Ag. de 2021
Editada: Wan Ji el 17 de Ag. de 2021
s = fileread('test.txt'); % read files to string s
k = find(s==newline); % find newline position
s = mat2cell(s,1, diff([0,k(4:4:end-1),numel(s)])); % split with every 4 newlines
fid = arrayfun(@(i)fopen([num2str(i),'.txt'], 'wt'),1:1:numel(s)); % get the fid
arrayfun(@(i)fprintf(fid(i),'%s',replace(s{i},newline,'')),1:1:numel(s)); % write to 1.txt 2.txt...
arrayfun(@(i)fclose(q(i)),1:1:numel(s));% close files
  4 comentarios
Wan Ji
Wan Ji el 18 de Ag. de 2021
Editada: Wan Ji el 18 de Ag. de 2021
I'd like to have my answer accepted if this code helps you. many thanks in advace
Max90
Max90 el 18 de Ag. de 2021
Hi,
Thanks a lot. It worked now!
Max

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by