[問題] 修改檔名,保留舊檔名並在其之前加上編號

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