次のファイルのリストがあります。
pairs10_10.mp3
pairs10_11.mp3
pairs10_12.mp3
pairs10_13.mp3
pairs10_14.mp3
pairs10_15.mp3
pairs10_16.mp3
pairs10_17.mp3
pairs10_18.mp3
pairs10_19.mp3
pairs10_1.mp3
pairs10_2.mp3
pairs10_3.mp3
pairs10_4.mp3
pairs10_5.mp3
pairs10_6.mp3
pairs10_7.mp3
pairs10_8.mp3
pairs10_9.mp3
pairs1_10.mp3
後でソートするときに正しい順序でソートされるように、次のようなものを取得したいと思います。
pairs10_10.mp3
pairs10_11.mp3
pairs10_12.mp3
pairs10_13.mp3
pairs10_14.mp3
pairs10_15.mp3
pairs10_16.mp3
pairs10_17.mp3
pairs10_18.mp3
pairs10_19.mp3
pairs10_01.mp3
pairs10_02.mp3
pairs10_03.mp3
pairs10_04.mp3
pairs10_05.mp3
pairs10_06.mp3
pairs10_07.mp3
pairs10_08.mp3
pairs10_09.mp3
pairs01_10.mp3
私はコマンドについて学びましたrename
が、この名前を変更する方法がわかりません。
ベストアンサー1
Perlrename
コマンドを使用します。
rename 's/([0-9]+)_([0-9]+)/sprintf("%02d_%02d",$1,$2)/e' *.mp3
修飾子e
はs
代替演算子置換が補間された文字列ではなくPerl式であることを意味します。%02d
関数形式sprintf
必要に応じて、先頭にゼロを追加して、2桁の数字のみで整数形式を指定します。
または、zshとそのエントリを使用してください。numeric_glob_sort
オプション。ただし、zshがグローブ操作を実行している場合にのみ機能します(図を参照play pairs*.mp3
)。