Replace string in text file
    59 views (last 30 days)
  
       Show older comments
    
    Kian
 on 12 Aug 2020
  
    
    
    
    
    Answered: kuchina mani chandra
 on 3 Apr 2023
            I have a txt file in which there are a bunch of lines. The first two lines are shown below:
10125731872 50  3731  -9999    307    166  -9999    827   4090  -9999    587    332      5  -9999
10125731873 50   117    322      9  -9999    187    300   1273    280    103  -9999     39  -9999
I need to add an "M" after all -9999 values. In a text editor this would be simply done by using the replace tool while looking for all "-9999 " and replacing them with "-9999M". Simple! But I have a hard time doing the same thing in Matlab.
Any idea how I can do this simple task?
Thanks.
0 Comments
Accepted Answer
  Walter Roberson
      
      
 on 12 Aug 2020
        filename = 'a_txt_file.txt';
new_filename = ['new_' filename];
S = fileread(filename);
S = regexprep(S, '-9999\>', '$&M');
fid = fopen(new_filename, 'w');
fwrite(fid, S);
fclose(fid);
It is recommended that new_filename be different than filename: otherwise if something goes wrong in the writing process, you could lose your only copy of the input.
5 Comments
  Walter Roberson
      
      
 on 12 Aug 2020
				
      Edited: Walter Roberson
      
      
 on 12 Aug 2020
  
			regexprep(S, '-9999( |$)', '-9999M', 'lineanchors' )
More Answers (1)
  kuchina mani chandra
 on 3 Apr 2023
        Function replaceStringIntxtFile(filepath,stringToReplace,ReplaceWith) Filedata = readlines(filepath); replacedFiledata =replace(Filedata,stringToReplace,ReplaceWith); F=fopen(filepath,'w'); fprintf(f,'%s\n'replacedFiledata); fclose(f) end
0 Comments
See Also
Categories
				Find more on Variables in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

