2013-10-19 3 views
9

ランダムな名前の.jpgファイルがたくさんあります。 ファイルをバッチにリネームして数字を追加する

basename-0.jpg 
basename-1.jpg 
basename-2.jpg 
. 
. 
. 
. 
basename-1000.jpg 

は私がこれを書いた:私はbashスクリプトは次のように名前を変更したい

n = 0; 
for file in *.jpg ; do mv "${file}" basename"${n}".jpg; n+=1; done 

しかし、上記のbashに問題がループで、n個の文字列とみなされていることであるので、N + 1は、新たに移動されたファイルの最後にもう1つ追加します。 あなたのヒントを気に入ってください。 bashシェルで算術拡張のため

答えて

15

使用$((expression))

n=0; 
for file in *.jpg ; do mv "${file}" basename"${n}".jpg; n=$((n+1)); done 
3

あなたは 'ベース名' または$(ベース名)欲しいましたか?より一般的な形態は次のとおり

# create basename-0.jpg, basename-1.jpg, ... basename-n.jpg 
e='jpg'; j=0; for f in *.$e; do mv "$f" basename-$((j++)).$e; done 

又は

# preserve stem: <stemA>-0.jpg, <stemB>-1.jpg, ... <stem?>-n.jpg 
e='jpg'; j=0; for f in *.$e; do mv "$f" "${f%.*}"-$((j++)).$e; done 
5

Bash((var++))ような算術評価構文を使用することもできプリ/ポストインクリメント/デクリメント変数値。

n=0; 
for file in *.jpg ; do mv "${file}" basename"${n}".jpg; ((n++)); done 
関連する問題