Replace string in text file
70 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Kian
am 12 Aug. 2020
Beantwortet: kuchina mani chandra
am 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 Kommentare
Akzeptierte Antwort
Walter Roberson
am 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 Kommentare
Walter Roberson
am 12 Aug. 2020
Bearbeitet: Walter Roberson
am 12 Aug. 2020
regexprep(S, '-9999( |$)', '-9999M', 'lineanchors' )
Weitere Antworten (1)
kuchina mani chandra
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!