
@CyberMameCANです。
ファイル名に入っている数値をインクリメントするスクリプトをRubyの練習を兼ねて作ってみました。
無駄な処理をしていたりするかもですが、
いい練習になりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# -*- encoding: utf-8 -*- #!/opt/local/bin/ruby # # ファイル名に入っている数値をインクリメントし、 # exchangeというフォルダの中に、 # 処理中のファイルを新ファイル名でリネームする。 # # 条件:ファイル名には拡張子の前に3桁の数値が入っている # ex) XXXXX123.jpg # FILE_EXT = 'jpg' # 拡張子 NUM_KETA = 3 # 拡張子の前の数値の桁数 # フォルダ中のJPGファイルに対して処理を行う Dir::glob( Dir::pwd + '/*.' + FILE_EXT ).each { |f| # 初期化 back = [] # ファイル名退避用 dir, file = File::split( "#{f}" ) # ディレクトリとファイル名を分ける # 旧ファイル名退避 back << file.dup # 参照渡ししない # ファイル名の後ろから処理するための準備 # ex) 5のマイナス 5 - 5×2 = -5 rnum_posi = File::extname( "#{f}" ).length - ( File::extname( "#{f}" ).length * 2 ) - NUM_KETA i = file[ rnum_posi, NUM_KETA ].to_i + 1 # ファイル名の後ろ側から指定バイト取得 file[ rnum_posi, NUM_KETA ] = i.to_s.rjust( NUM_KETA, '0' ) # 戻す(桁が足りない時は0を補充) # 新ファイル名退避 back << file.dup puts back[1] + ' <- ' + back[0] + 'リネームしました。' # ファイルリネーム File.rename( back[0], "exchange/" + back[1] ) } |
こういうブログもありました。
- ニッカンツイッター 2012-03-15
- Ruby文法 初歩の初歩をまとめ その4 例外処理
- Ruby + Hpricot で 気象庁サイトのスクレイピングに挑戦
- Railslでカラム名(列名)の追加と削除と変更
- Linuxのコマンド忘備録(現在のカーネルを確認、bzip2圧縮解凍など)
人気のあるブログ:
- 新しいgemのアップデート方法(rubygems-update)
- Coda2でscssを使うときのお供にcompassをどうぞ。
- bashでUTF-8に設定して日本語表示したり使ったり。Emacsでも。
- NginxをSSL付きで動かすために設定したこと
- Macでフォルダを結合したいとき