各フォルダ内に1000個以上のjpegを含む約200個のフォルダがあり、すべて4桁までゼロパディングが必要です。これらのフォルダの中には、より深い画像を含むサブディレクトリもあります。写真の名前はすべて異なります(たとえば、あるフォルダではImage_1.jpg、Image_11.jpgなどと呼ばれ、他のフォルダにはPhoto01.jpg、Photo02.jpgというファイルが含まれる場合があります)
.
├── folderA
│ ├── subfolder1
│ │ ├── Photo_1.jpg
│ │ └── Photo_11.jpg
│ └── subfolder2
│ ├── image001.jpg
│ ├── image002.jpg
│ └── image003.jpg
└── folderB
├── subfolder1
│ ├── foto_01.jpg
│ └── foto_01.jpg
└── subfolder2
├── foto_01.jpg
├── foto_02.jpg
└── foto_03.jpg
すべてのサブフォルダに移動して、ファイル名の数字0を4文字で埋めるコマンドを実行する方法を教えることができる人はいますか?
ベストアンサー1
使用perl
rename
:
rename -n --filename 's/\d+/sprintf("%04d",$&)/e' *.jpg
または再帰的に:
find . -type f -name "*.jpg" -exec rename -n --filename 's/\d+/sprintf("%04d",$&)/e' {} +
- このフラグは、パスではなくファイル名のみが変更されることを保証します。そうでなければ、等の
--filename
結果が得られます。subfolder0001
-n
出力が満足な場合は削除してください。