Make changes to multiple files simultaneously?

조회 수: 13 (최근 30일)
Zi
Zi 2023년 3월 6일
편집: 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?)
Thanks.

답변 (1개)

dpb
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
end
The above overwrites the original file, obviously you can modify the filename before writing to avoid that...
  댓글 수: 4
Stephen23
Stephen23 2023년 3월 7일
F=readlines(fn);
dpb
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... :)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by