Make changes to multiple files simultaneously?

1 view (last 30 days)
Zi
Zi on 6 Mar 2023
Edited: dpb on 7 Mar 2023
I need to add one line of code to 100 files, is there any way I can modify all of them at once (without changing them individually?)
Thanks.

Answers (1)

dpb
dpb on 6 Mar 2023
Edited: dpb on 7 Mar 2023
Notepad++ has a feature that may work if you can make the replacement with a [regexp] expression as a substitution.
Alternatively, there are editors with batch-capable commands that can operate in batch file mode in a for...each mode on a file list.
Or, you can write a Matlab script that does the job -- if the line goes in a fixed location like at the end, it's pretty trivial if the files are either named with a well-defined name that is usable wildcard pattern or are all in a given location --
Alert -- air code, test thoroughly before destroying anything by having backups!!!
nL=100; % target line number in file
L="Your new text"; % the text to add/insert
d=dir(fullfile('yourfolder','yourfile*wildcardname.ext')); % get the list of files
for i=1:numel(d)
fn=fullfile(d(i).folder,d(i).name); % the fully-qualifie fn
F=readlines(fn); % in memory as string array
F=[F(1:nL);L;F(nL+1:end)]; % insert the line where wanted
writematrix(F,fn) % rewrite modified file
end
The above overwrites the original file, obviously you can modify the filename before writing to avoid that...
  4 Comments
dpb
dpb on 7 Mar 2023
Edited: dpb on 7 Mar 2023
Thanks, @Stephen23. I started with the fullfile() in there and then realized needed it again and moved it -- but then failed to put the variable back in its place...I did say was air code... :)

Sign in to comment.

Categories

Find more on Entering Commands in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by