[perl]タブを指定幅の半角スペースに置換

概要

テキストファイル中のタブ文字を、適切な幅の半角スペースに変換します。
えぇ、そうです。某書籍、って言うかまんまクックブックからのパクリです・・・。

まぁ、少し手を加えて、元のテキストファイルには手を加えずに、拡張子( nontab.txt )を付加した別ファイルを作成する形にしています。

良い子のお約束

このページに書かれている事を実行して、何が起こっても私は知りません。
まぁ、このページに到達された方なら大丈夫でしょうけど(^o^)。

環境とか

使い方

  1. ローカルに perl をインストールする。
  2. 別掲の perl スクリプトをコピーして、ローカルのお好きな場所(以下、C:\re984001.cgi )に保存する。
  3. スクリプト内のタブ文字幅をお好きな値に変更して下さい(現在は 4 になっています)。
  4. ショートカットを作成し、リンク先を "perl C:\re984001.cgi" にして下さい。
  5. ショートカットにテキストファイルをドラッグアンドドロップで渡して下さい。
  6. テキストファイルと同一フォルダに、変換後のテキストファイルが作成されます。

スクリプトのソース

re984001.cgi

# タブを 4 つの半角スペースに変換するスクリプト
# ファイルのロックは無くても(^o^)
    $C_tab = 4;		# タブ桁数

    while ( $input = shift @ARGV ) {
        open(IN,"< $input");
        open(OUT,"> $input.nontab.txt");
        while (<IN>) {
            1 while s/\t+/' ' x (length($&) * $C_tab - length($`) % $C_tab)/e;
            print OUT $_;
        }
        close OUT;
        close IN;
    }	

参考サイト等