Make changes to multiple files simultaneously?

4 vues (au cours des 30 derniers jours)
Zi
Zi le 6 Mar 2023
Modifié(e) : dpb le 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.

Réponses (1)

dpb
dpb le 6 Mar 2023
Modifié(e) : dpb le 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 commentaires
Stephen23
Stephen23 le 7 Mar 2023
F=readlines(fn);
dpb
dpb le 7 Mar 2023
Modifié(e) : dpb le 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... :)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by