필터 지우기
필터 지우기

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

조회 수: 4 (최근 30일)
Max90
Max90 2021년 8월 16일
댓글: Max90 2021년 8월 18일
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

채택된 답변

Wan Ji
Wan Ji 2021년 8월 17일
편집: Wan Ji 2021년 8월 17일
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
Wan Ji
Wan Ji 2021년 8월 18일
편집: Wan Ji 2021년 8월 18일
I'd like to have my answer accepted if this code helps you. many thanks in advace
Max90
Max90 2021년 8월 18일
Hi,
Thanks a lot. It worked now!
Max

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by