[问题] 修改档名,保留旧档名并在其之前加上编号

楼主: Willful1 (自强不息!!)   2020-03-17 02:40:01
如题,请教大家关于以matlab批次修改档名的问题,
假设要针对大量的.txt档名做修改,但保留原有的旧档名,只在其前方加上编号
例如:
原本的档名为:
"旧档名1ooo.txt"、"旧档名2xxx.txt"、"旧档名3vvv.txt"、....
(每个旧档名称都不尽相同)
修改完成后,档名应为:
"001-旧档名1ooo.txt"、"002-旧档名2xxx.txt"、"003-旧档名3vvv.txt"、....
但爬文查到的方法,多半是将整个档名都修改掉,例如
file = dir '*.txt';
l = length(file);
for i=1:l;
旧档名 = file(i).name;
新档名 = num2str(i,'%04i.txt');
eval (['!rename' 32 旧档名 32 新档名]);
end
请教大家更合适的写法,能将上述程式修改得更理想一些,谢谢大家~!
作者: book5601 (苍澜野兽)   2020-03-17 15:04:00
新档名=strcat(num2str(i,'%04i-'),旧档名,'.txt')
楼主: Willful1 (自强不息!!)   2020-03-17 20:15:00
谢谢book大回复
作者: sppmg (sppmg)   2020-03-18 22:49:00
regexprep 搭配 () 和 $1,$2 ...
楼主: Willful1 (自强不息!!)   2020-03-19 02:34:00
谢谢s大回复
作者: profyang (prof)   2020-03-19 08:24:00
应该需要regexp没错
作者: sppmg (sppmg)   2020-03-20 01:42:00
原po要求的文字处理不复杂,1F方法可能比较简洁。
作者: profyang (prof)   2020-03-20 21:22:00
可是他后面有跟数字 现在他是要读到那个数字再加到档名前面 不然哪知道前面数字要加什么还是档名本来就有按照字母数字顺序?
作者: sppmg (sppmg)   2020-03-22 19:22:00
哦!没注意旧档名含数字,如果要利用原数字的话就一定是regexp系列了!
作者: sunev (Veritas)   2020-03-23 00:12:00
如果原档名够整齐,也是可以用矩阵方法解啦.....
楼主: Willful1 (自强不息!!)   2020-04-20 00:53:00
关于regexp能否请大家以范例稍加说明呢? 谢谢大家~

Links booklink

Contact Us: admin [ a t ] ucptt.com