Re:ファイルの添え番号の桁を3桁に揃えるGroovyスクリプト
ファイルの添え番号の桁を3桁に揃えるGroovyスクリプト - nemo_kazのメモ [Groovyライフ]
で、ファイル名のリネームをやっていたので、#replaceAllで書いてみました。
ついでに数値の最大桁数を求めてソートもしてみました。
ファイル名を生成するところまでで、リネーム処理は書いてません。
(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10)
def list = [ 'hoge[1].jpg', 'hoge[11].jpg', 'hoge[2].jpg', 'hoge[10111].jpg', 'hoge[10].jpg', 'hoge[100].jpg' ] // 最大桁数を求めて def maxDigit = getMaxDigit(list) // 変換して def repList = list.collect{ padNumber(it, maxDigit) } // ソートして出力する repList.sort().each{ println it } def getMaxDigit(list) { list.collect{ name -> (name =~ /(\d+)/).collect{ it } }.flatten()*.toInteger().max().toString().size() } def padNumber(text, digit) { text.replaceAll(/\d+/){ it.padLeft(digit, '0') } }
出力結果
hoge[00001].jpg
hoge[00002].jpg
hoge[00010].jpg
hoge[00011].jpg
hoge[00100].jpg
hoge[10111].jpg