我需要重命名一組編號的文件,但是修改編號+5,如何操作?

我需要重命名一組編號的文件,但是修改編號+5,如何操作?

可能的重複:
如何從命令列或使用第三方工具批次重命名檔案?

我有一組 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 命令以僅重新命名符合特定模式或增量不同數量的檔案。

相關內容