Deleting Rows in Text File and Assigning them to a New Text

조회 수: 4 (최근 30일)
tinkyminky93
tinkyminky93 2022년 6월 8일
편집: Rik 2022년 6월 8일
Hello,
I want to find the rows which contain "temp" word in my text file, then, I want to delete these rows. After that, what I want to do is, assigning the rest of the rows which are not deleted to a new text file or variable. How can I do it? Thank you.

채택된 답변

Rik
Rik 2022년 6월 8일
편집: Rik 2022년 6월 8일
Read the text file with readlines (or my readfile function).
Then you can use contains to determine which line contains the text 'temp'. The code below can then be used to write the lines with and without this text.
fprintf(fid1,'%s\n',str{L});
fprintf(fid2,'%s\n',str{~L});
Edit:
To give a more complete code:
filename1='original_file.txt';
filename2='temp_file.txt';
str=cellstr(readlines(filename1));
L=contains(str,'temp');
fid1=fopen(filename1,'w');
fid2=fopen(filename2,'w');
fprintf(fid1,'%s\n',str{L});
fprintf(fid2,'%s\n',str{~L});
fclose(fid1);fclose(fid2);
  댓글 수: 3
tinkyminky93
tinkyminky93 2022년 6월 8일
I wrote like
pat = "temp";
TF = contains(text, pat);
str(TF)
Undefined function 'str' for input arguments of type 'logical'
Rik
Rik 2022년 6월 8일
You need to open the orignal file and the new file with fopen to generate file IDs.
Since you apparently stored the text in a variable named text, you will have to use that in the fprintf calls as well.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by