2013-03-22 157 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