作者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