可能的重複:
如何從命令列或使用第三方工具批次重命名檔案?
我有一組 47 個 .mp3 文件,用於多媒體項目,名為 01.mp3 - 47.mp3 每個文件的名稱實際上應該是該數字 + 5,因此 02.mp3 實際上應該是 07 .mp3 重命名的檔案可以有某種前綴+數字,或者可以寫入新資料夾以免干擾現有檔案。
我有 ubnutu 和 Windows 供我使用。
答案1
您可以在 awk 中使用下列腳本執行此操作:
#!/usr/bin/awk -f
BEGIN {
regex = "[0-9]+"
print "mkdir new"
}
{
if (match($8,regex)) {
before = substr($8,1,RSTART-1);
pattern = substr($8,RSTART,RLENGTH);
newnumber = pattern + 5
after = substr($8,RSTART+RLENGTH);
printf("mv %s new/%s%.2d%s\n", $8, before, newnumber, after);
}
}
假設您有一個包含以下文件的資料夾:
foo01
foo02
foo03
foo04
foo05
bar10.txt
bar11.txt
bar12.txt
bar13.txt
rename.awk
如果執行該命令,ls -l|./rename.awk|sh
您將得到:
new/foo06
new/foo07
new/foo08
new/foo09
new/foo10
new/bar15.txt
new/bar16.txt
new/bar17.txt
new/bar18.txt
rename.awk
當然,您可以修改腳本或 shell 命令以僅重新命名符合特定模式或增量不同數量的檔案。