2013-03-22 130 views
-1

在我的nas4free(FreeBSD)中,我有幾個包含照片的目錄,我將使用一個bash腳本來重命名每個文件,其中包含它和計數器的目錄名稱。批重命名腳本文件

例如:

/ path/2012-05-01 - description/DSCN4074.JPG 

/ path/2012-05-01 - description/2012-05-01 - description (1 to n). jpg 
+3

是什麼這個問題?你試過什麼了?你有什麼特定的問題嗎? – cdarke 2013-03-22 10:09:22

+0

我剛剛完成開發腳本。該腳本起作用,我不知道從邏輯或語法的角度來看它是否正確。 #!/ bin/bash COUNT = 1 echo Sto cercando我爲$(find。-type f -iname「*。$ EXT」)中的FILE EXT = jpg文件做CURRENT = pwd | cut -d/-f 5 NAME = echo $ FILE | cut -d/-f 2 TOT = ls | grep -i「$ EXT」| wc -l echo $ CURRENT「(」$ COUNT「di」$ TOT「)。jpg」| xargs -I {} mv「$ NAME」「{}」let「COUNT = $ COUNT + 1」;完成退出 – Daktari 2013-03-22 23:27:32

+0

OMG我不知道如何格式化文本...對不起 – Daktari 2013-03-22 23:28:00

回答

0

你應該算的文件的數量每個目錄只有一次,減少管道:

#!/bin/bash 
EXT=.jpg 

shopt -s nullglob 
find . -mindepth 2 -type d | while read d 
do(cd "$d" 
    CURRENT=$(basename "$d") 
    FILES=(*"$EXT") 
    TOT=${#FILES[@]} 
    COUNT=0 
    for FILE in ${FILES[@]} 
    do let COUNT=COUNT+1 
     mv "$FILE" "$CURRENT ($COUNT of $TOT)$EXT" 
    done 
)done