TS-Works HomePage!!

[Japanese]/[English]

Perl Script

HOW (ファイルカウント)

 学生の頃に作ったもので、ログのカウントを行うためのスクリプト。本を片手に初めて作ったPerlのスクリプトです。スクリプト自体はとても簡単で、grep改良版といったところでしょうか。ある条件にあった文字列を数えて、その数を表示します。これの派生で似たようなスクリプトをいくつか作った。スクリプト本体は恥ずかしながら公開してみますが、思い切り自分用にカスタマイズしてるので私しか使えないでしょう。
#!/usr/bin/perl

if (@ARGV == 0){
        die "Usage: [filenames...]\n";
}

($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime;
$mon++;
$year = 1900 + $year;
$mon  = sprintf("%.2d",$mon);
$mday = sprintf("%.2d",$mday);

$today = "$year/$mon/$mday";

foreach $file (@ARGV){
open(IN, $file) || die "$file : $!";
$i=0;
while(<IN>){
        if (/$today/){
                $i = $i + 1;
        }
}
close(IN);
print "$file : Today's Visitor $i.\n";
}

NEW (ファイル保存と削除)

 学生の頃に作ったもので、ログの整理を行うためのスクリプト。これもPerl本片手に作ったスクリプトです。こっちは、古いファイルの内容をバックアップ用ファイルに追加し、古いファイルを削除。そして、同名の新しいファイルを作成します。ソースを公開してみますが、私しか使えないでしょう。

#!/usr/bin/perl

if (@ARGV == 0){
        die "Usage: [filenames...]\n";
}

foreach $file (@ARGV){
open(IN, $file);
$i=0;
$bakfile = ">> ./bak/" . $file . ".bak";
open(OUT, $bakfile);
while($_ = <IN>){
        print (OUT $_);
}
close(OUT);
close(IN);

unlink $file;
}