作者Willful1 (自强不息!!)
看板MATLAB
标题[问题] 修改档名,保留旧档名并在其之前加上编号
时间Tue Mar 17 02:40:01 2020
如题,请教大家关於以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
请教大家更合适的写法,能将上述程式修改得更理想一些,谢谢大家~!
--
※ 编辑: Willful1 (42.72.240.10 台湾), 03/17/2020 02:41:42
1F:推 book5601: 新档名=strcat(num2str(i,'%04i-'),旧档名,'.txt') 03/17 15:04
2F:→ Willful1: 谢谢book大回覆 03/17 20:15
3F:推 sppmg: regexprep 搭配 () 和 $1,$2 ... 03/18 22:49
4F:→ Willful1: 谢谢s大回覆 03/19 02:34
5F:推 profyang: 应该需要regexp没错 03/19 08:24
6F:→ sppmg: 原po要求的文字处理不复杂,1F方法可能比较简洁。 03/20 01:42
7F:推 profyang: 可是他後面有跟数字 现在他是要读到那个数字再加到档名 03/20 21:22
8F:→ profyang: 前面 不然哪知道前面数字要加什麽 03/20 21:23
9F:→ profyang: 还是档名本来就有按照字母数字顺序? 03/20 21:24
10F:推 sppmg: 哦!没注意旧档名含数字,如果要利用原数字的话就一定是reg 03/22 19:22
11F:→ sppmg: exp系列了! 03/22 19:22
12F:推 sunev: 如果原档名够整齐,也是可以用矩阵方法解啦..... 03/23 00:12
13F:→ Willful1: 关於regexp能否请大家以范例稍加说明呢? 谢谢大家~ 04/20 00:53