0-n.jpg
たとえば、1〜500という名前のファイルがあります。n
問題は、Windowsを使用している一部の人が前にゼロを使用しないことですls
。
0-100.jpg
0-101.jpg
...
0-10.jpg
...
0-199.jpg
0-19.jpg
0-1.jpg
ls
そのため、結果が次のようになるように前にゼロを挿入するように名前を変更したいと思います。
0-001.jpg
0-002.jpg
...
0-100.jpg
...
0-499.jpg
0-500.jpg
つまり、すべてのファイルが同じファイル名の長さを持つことを望んでいます。
頑張ったこのソリューションただし、次の一連のエラーが発生します。
bash: printf: 0-99: invalid number
ベストアンサー1
システムにPerlベースのrename
コマンドがある場合は、次のことができます。
rename -- 's/(\d+)-(\d+)/sprintf("%d-%03d",$1,$2)/e' *.jpg
-v
(verbose)および(no action)オプションを使用して-n
テストします。
$ rename -vn -- 's/(\d+)-(\d+)/sprintf("%d-%03d",$1,$2)/e' *.jpg
0-10.jpg renamed as 0-010.jpg
0-19.jpg renamed as 0-019.jpg
0-1.jpg renamed as 0-001.jpg