グラフィックファイルを処理し、mvを使用して順番に名前を変更します。

グラフィックファイルを処理し、mvを使用して順番に名前を変更します。

似たような質問に答える古い質問を探していましたが、コードを操作するのにうまくいかないようです。 Bashの代わりにzshを使用していますが、他のbashシェルスクリプトはうまくいくので大丈夫だと思います。

プロンプト(インライン)でこれを試しました。

$i=107;for i in *.jpg;do mv "$i" "$i.jpg" $i=$((i+1)); done

デフォルトでは、現在の名前は次のとおりです。

107.jpg 108.jpg 109.jpg 110.jpg

リストが終了するまでお待ちください。

seqを使用したいコードについて誰かが助けてくれることを願っています。

ありがとう、

答え1

インデックスを増やし、ファイル名を処理するために2つの別々の変数を使用しようとしています。

i=107; for file in *.jpg; do mv "$file" "$((i++))".jpg; done

答え2

使用しているので、zshそのモジュールを使用して明示的なループを回避できます。zmv

autoload zmv

i=107; zmv -n '*.jpg' '$[i++].jpg'

-n推奨処置に満足したら削除してください。

関連情報