2

たくさんのファイル(いくつかのjpgファイルとたくさんのpngファイル)の名前を変更したいのですが、各フォルダーに順番に番号を付ける必要があります。この構造は次のとおりです。

.../folder01
    file.png
    file.jpg
.../folder02
    file.png
    file.png
  ..........
.../folder05
    file.png
    file.png

そして私はこのようなものが欲しい:

.../folder01
    0001.jpg
    0002.png
.../folder02
    0003.png
    0004.png
  ..........
.../folder05
    0012.png
    0013.png      

どうすればbashを使用して作成できますか?

4

2 に答える 2

2

これが1つの方法です:

find . \( -name '*.jpg' -o -name '*.png' \) -print  | (i=0; while read f; do 
    let i+=1; mv "$f" "${f%/*}/$(printf %04d "$i").${f##*.}"; 
done)
于 2013-01-08T21:27:49.107 に答える
0

StringSolverの自動ツールを使用する別の方法を次に示します。

mv folder01/file.jpg folder01/0001.jpg
mv folder01/file.png folder01/0002.png
mv

2 番目の例が必要なのは、そうしないと、フォルダー名の番号を使用してすべてのファイルの名前を変更することを考えるからです。最後の 2 行は、移動を実行してすぐに一般化する 1 行に短縮することもできます。

mv -a folder01/file.png folder01/0002.png

免責事項: 私は学術目的でこの作品の共著者であり、bash スクリプト レンダラーに取り組んでいます。ただし、システムをそのままテストすることはできます。

于 2014-01-27T15:12:35.817 に答える