コピー先に連番が扱えるようにcpの拡張を作ってみた

今までプログラミングコンテストに望む際に、template.cppをA.cpp, B.cpp, ... , E.cppにコピーする必要があり、これが非常に面倒でした。
先日zmvコマンドの記事(http://mollifier.hatenablog.com/entry/20101227/p1)を読んで、もしかして簡単に連番のcpが出来るのかなと思い、探してみるもなかなか見つかりませんでした。
bashzshは「{1..5}」を「1,2,3,4,5」に展開してくれる機能があるので、これで行けるかと思いましたが、どうもcpには上手く使えないもよう。「touch A{1..5}.txt」とかは動くのに・・・。


見つからないのなら作っちゃおうということで作ってみました。
https://github.com/mkiken/Small_Programs/tree/master/ccp

始めは何を思ったかPerlで作っていましたが、RubyPythonの構文糖衣に慣れている僕にはPerlの構文は辛かったので、Rubyで書き直し。
Perlでの実装時に一番悩んでいたのが連番の作り方。"a9"の次を"b0"にすべきかどうか?またどう実装するか?
RubyのStringクラスにはsuccというメソッドがあり、

"a9".succ   # => "b0"

となります。こんな便利なメソッドがあるとはさすがRuby・・・。

適当な試作品ですが、

ccp templates/template.cpp temp/[A..E].cpp

のように使えるので、便利。