このスクリプトは、第1引数で渡されたファイルの内容を第2引数で渡された数から第3引数で渡された数まで
指定回数反復して標準出力へ書き出すツールです。
この際に、第1引数のファイル中に「${CNT:<format>}」があれば、その時の反復回数の数値が<format>で
指定したようにフォーマット(※)されて置換されます。
※フォーマットはpythonでのフォーマット指定方法と同じです。
つまり、スクリプト内部でフォーマット指定する文字列を作って、それをpythonインタプリタに流しているだけ。
[!!注意!!]
このスクリプトはpython 3.xを想定しています。
お使いの環境が2系(2.6+)の場合は、2行目あたりに
from __future__ import print_function
を追加して下さい。
ソフトウェア開発において、「文字列の数値の部分だけ異なるが、その他は同じ内容」なファイルを 用意しなければいけない場面があると思います(作者の場合は、割込みハンドラを記述するためのアセンブラファイル)。 そのような場合、手作業で1つ1つコピーして、数値の所だけ修正すれば当然できますが、そのコピーする数が多くなればなるほど、 面倒(作者が記述したかった割込みハンドラ数は64個でしたが)だったので、作りました。
まず、以下のようなコピー元のテンプレートファイルを用意します。(今回は、template.txt)
% cat template.txt
a${CNT:02d}
b${CNT:03d}
c${CNT:0.2f}
そして、以下のようにスクリプトを起動します。(さらに標準出力をリダイレクト)
% python iterator.py template.txt 0 1 > out.txt
終了すると、次のような内容のファイルが出来上がります。
% cat out.txt
a00
b000
c0.00
a01
b001
c1.00