ファイル名を1から無制限に自動変更

ファイル名を1から無制限に自動変更

複数のファイルの名前を1から無限(すべてのファイルを含む)に変更するには?

私のファイルは次のとおりです。

file.jpeg.jpg
fileA.jpeg.jpg
fileB.jpeg.jpg

出力:

1.jpeg.jpg
2.jpeg.jpg
3.jpeg.jpg

Cygwinを使用しているため、パッケージをインストールできません

ベストアンサー1

努力する:

n=0; for f in *.jpg; do mv "$f" "$((++n)).jpeg.jpg"; done

あるいは、同じ内容が複数行にわたって広がります。

n=0
for f in *.jpg
do
    mv "$f" "$((++n)).jpeg.jpg"
done

どのように動作しますか?

  • n=0

    これは変数nnを初期化します。

  • for f in *.jpg; do

    これにより、名前で始まる現在のディレクトリを繰り返すループが始まります.jpg

  • mv "$f" "$((++n)).jpeg.jpg"

    必要に応じてファイル名が変更されます。 Bashは$((...))算術演算を実行します。ここではn、実行するたびに増加するようにします。

  • done

    これはサイクルの終わりを示します。

このコードは、名前にスペース、タブ、改行、またはその他の難しい文字を含むファイルが含まれている場合にも機能します。

注文する

glob はtest*.inファイルのリストに展開されます。アルファベット順に注文する。これに関する文書は次のとおりですman bash

bashは各単語で*、?と[文字を検索します。これらの文字のいずれかが現れると、その単語はパターンと見なされます。 アルファベット順のリストに置き換えられましたパターンに一致するファイル名(以下のパターン一致を参照)[強調表示します。 ]

アルファベット順の意味は地域によって異なります。

おすすめ記事