Make changes to multiple files simultaneously?

2 次查看(过去 30 天)
编辑: dpb ,2023-3-7
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?)

回答(1 个)

dpb 2023-3-6
编辑:dpb 2023-3-7
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
The above overwrites the original file, obviously you can modify the filename before writing to avoid that...
  4 个评论
dpb 2023-3-7
编辑:dpb 2023-3-7
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... :)



Find more on Entering Commands 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!

Translated by