我正在嘗試在重命名腳本中將連續的四位數字添加到文件名的末尾。我遇到的問題是,它只填充第一個文件,添加的數字不是順序的。這裏是我的腳本至今:在文件名的末尾添加連續數字 - Shell腳本
開始的文件名:
FILE-1.png
FILE-5.png
FILE-14.png
FILE-99.png
FILE-167.png
FILE-199.png
FILE-278.png
FILE-455.png
腳本:
a=`printf '%04d' "1"`
cd /${1-$PWD}
for i in *.png;
do mv $i `printf output.%04d.$a.png $(echo $i | sed 's/[^0-9]*//g')`;
let a=a+1
done
編輯: 我改劇本有點納入頂部的fmt
變量。但我仍然希望它按照第一組數字的數字順序來命名第二組數字,如下面的我希望的輸出中所示。
fmt=output.%04d
n=1
cd /${1-$PWD}
for i in *.png;
do mv $i `printf $fmt.%04d.png $(echo $i | sed 's/[^0-9]*//g') "$n"`;
n=$((n+1))
done
我的新的輸出:
output.0001.0001.png
output.0005.0007.png
output.0014.0002.png
output.0099.0008.png
output.0167.0003.png
output.0199.0004.png
output.0278.0005.png
output.0455.0006.png
原始輸出:
output.0001.0001.png
output.0005.7.png
output.0014.2.png
output.0099.8.png
output.0167.3.png
output.0199.4.png
output.0278.5.png
output.0455.6.png
所需的輸出:
output.0001.0001.png
output.0005.0002.png
output.0014.0003.png
output.0099.0004.png
output.0167.0005.png
output.0199.0006.png
output.0278.0007.png
output.0455.0008.png
一如往常的任何幫助深表感謝!
不知道爲什麼有人低估了這一點。它具有一個好問題的所有要素 - 輸入,期望和實際輸出,甚至嘗試編碼解決方案。 – ghoti