bashスクリプトを使用して末尾の数字を定数に増やして、複数のファイルの名前を変更します。

bashスクリプトを使用して末尾の数字を定数に増やして、複数のファイルの名前を変更します。

私のディレクトリには次のファイルがあります。

mmm.1
mmm.2
mmm.3
.
.
.
.
.

名前を次のように変更したいと思います。

mmm.31
mmm.32
mmm.33
.
.
.

各ファイル名の後に続く数字に数字「30」を追加するだけです。

ベストアンサー1

編集済み:最大300個のファイルを作業中であることを知らせてから、回答を修正する必要があります。以下の編集された回答で、数字300を既存のファイルの正しいキャップ番号に置き換えます。

for file in mmm.{300..1} ; do mv "${file}" "${file%.*}.$((30+${file#*.}))" ; done

bashこの回答は、基本機能を使用してすべての操作を実行し、bash外部プログラムやサブプロセスの起動を必要としないので効果的です。

  1. ${file%.*}ピリオドの前のファイル名のプレフィックスを返します。

  2. `$((..)) は数学演算のための bash イディオムです。

  3. ${file#*.}ピリオドの後にファイル名のサフィックスを返します。ファイル名に複数のピリオドを含めることができるという懸念がある場合###

man bash詳細やその他の非常にクールな基本機能については、リソースを参照してください。

おすすめ記事