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

看板MATLAB作者 (自強不息!!)時間1年前 (), 1年前編輯推噓6(607)
留言13則, 5人參與, 1年前最新討論串1/1
如題,請教大家關於以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

03/17 15:04, 1年前 , 1F
新檔名=strcat(num2str(i,'%04i-'),舊檔名,'.txt')
03/17 15:04, 1F

03/17 20:15, 1年前 , 2F
謝謝book大回覆
03/17 20:15, 2F

03/18 22:49, 1年前 , 3F
regexprep 搭配 () 和 $1,$2 ...
03/18 22:49, 3F

03/19 02:34, 1年前 , 4F
謝謝s大回覆
03/19 02:34, 4F

03/19 08:24, 1年前 , 5F
應該需要regexp沒錯
03/19 08:24, 5F

03/20 01:42, 1年前 , 6F
原po要求的文字處理不複雜,1F方法可能比較簡潔。
03/20 01:42, 6F

03/20 21:22, 1年前 , 7F
可是他後面有跟數字 現在他是要讀到那個數字再加到檔名
03/20 21:22, 7F

03/20 21:23, 1年前 , 8F
前面 不然哪知道前面數字要加什麼
03/20 21:23, 8F

03/20 21:24, 1年前 , 9F
還是檔名本來就有按照字母數字順序?
03/20 21:24, 9F

03/22 19:22, 1年前 , 10F
哦!沒注意舊檔名含數字,如果要利用原數字的話就一定是reg
03/22 19:22, 10F

03/22 19:22, 1年前 , 11F
exp系列了!
03/22 19:22, 11F

03/23 00:12, 1年前 , 12F
如果原檔名夠整齊,也是可以用矩陣方法解啦.....
03/23 00:12, 12F

04/20 00:53, 1年前 , 13F
關於regexp能否請大家以範例稍加說明呢? 謝謝大家~
04/20 00:53, 13F
文章代碼(AID): #1URyW3RI (MATLAB)
文章代碼(AID): #1URyW3RI (MATLAB)