2010-05-08 66 views

回答

2
basenumber=9999 
for file in *.jpg 
do 
    base="${file%.*}" 
    filenumber="${base#*_}" 
    mv "$file" "$((basenumber-filenumber))_$file" 
done 
+0

感謝您的想法。任何想法得到這個工作: 爲我在$(ls * JPG);做回聲「4000 - 'echo $ i | grep -o [0-9] *'」| bc;完成 – Donnied 2010-05-08 21:40:58

+0

上面的腳本將所有文件重命名爲9999.我遇到的認知障礙是想到了不會爲每個文件一路編號的腳本。似乎應該是一個五分鐘的黑客攻擊,但我只是看到在棧上彈出物品。 – Donnied 2010-05-08 21:44:11

+0

如果有多個'_'或'_'和'''之間沒有數字,腳本將會失敗。第一行可以通過用'##'替換第五行中的'#'來修復。第二,那是不能修復的。 – 2010-05-08 21:55:31