3 桁の数字とスペースやその他の拡張子を追加する端末を介したディレクトリのファイル名の変更

3 桁の数字とスペースやその他の拡張子を追加する端末を介したディレクトリのファイル名の変更

ls次のコマンドで表示されるディレクトリにファイルのリストがあります。

01-Campout 2001.jpg
2-Campout 2001.png
Campout 2001 - 3 of 21.tiff
Campout 2001 - 4.pdf

Campoutと2001の間のスペースを含むように後続のテキストを保持しながら、現在の番号付けを削除し、最初に3桁の名前付け規則に置き換えるために使用できるbashコマンドが何であるか疑問に思います。 .jpegと.pngファイルが混在しています。

私は最終結果が次のようになりたいです。

001-Campout 2001.jpg
002-Campout 2001.png
003-Campout 2001.tiff
004-Campout 2001.pdf

非常にありがとう

ベストアンサー1

そしてzsh

$ autoload -Uz zmv # best in ~/.zshrc
$ zmv -n '((<1-999>)-(*)|(*) - (<->) of <->(.*)|(*) - (<->)(.*))' '${(l[3][0])${:-$2$5$8}}-$3$4$6$7$9'
mv -- '01-Campout 2001.jpg' '001-Campout 2001.jpg'
mv -- '2-Campout 2001.png' '002-Campout 2001.png'
mv -- 'Campout 2001 - 3 of 21.tiff' '003-Campout 2001.tiff'
mv -- 'Campout 2001 - 4.pdf' '004-Campout 2001.pdf'

-n満足している場合は削除してください(模擬実行の場合))。

おすすめ記事