2011-07-23 65 views
0

我想編寫一個循環訪問目錄並更改文件名以包含001_DTS(其中DTS是日期時間戳),002_DTS,003_DTS, etc如何循環訪問目錄並調整文件名

並刪除aa,ab等,因爲我想用這個分割函數(從該函數創建的文件)。

回答

2
prefix="x" # the default 'split' prefix, change to suit yourself 
count=1 
dts=$(date +%Y%m%d%H%M%S) 

for f in "$prefix"[a-z][a-z]; do 
    mv "$f" "$(printf "%s%03d_%s" "$prefix" $count $dts)" 
    ((count++)) 
done 
+0

非常感謝!我認爲'x'前綴是我認爲文件名前綴是什麼的?再次感謝 – Justin

-2

第一,運行bash的:-),然後解決它:

bash # :-) 
J=1 
for I in * ; do 
    mv -i $I `printf '%03d' $J`_DTS 
    J=$((J+1)) 
done 
+0

ksh愛好者不會downvote我的回答:) – TMS

0

這個怎麼樣,而不是特定的殼(KSH/bash)的

cd /path/to/dir 
for file in * 
do 
    mv $file ${file}_$(date +%Y%m%d%H%M%S) && echo "file moved" || echo "unable to move" 
done 

如果你想在循環之前修改DTS的值只需像其他帖子一樣分配變量。

相關問題