sarからデータを・・・

またSolarisなんですけど、sarのレポートから、「報告用のレポート」を作成する必要があって、sarの出力結果をPerlに食わせて、CSVかHTMLに出力させることを考えた。

@buf = `LANG=C sar -f $sa_path/$filename`; foreach (@buf) { chomp($_); next if($_ =~ /^$/); $_ =~ s/\t+/ /g; $_ =~ s/\s+/ /g; @list = split(/ /, $_ ); next if(($list[1]+$list[2]+$list[3]+$list[4]) == 0); next unless($list[0] =~ /[012][0-9]:[0-5][0-9]:[0-5][0-9]/); $time = $list[0]; $usr = $list[1]; $sys = $list[2]; $wio = $list[3]; $idle = $list[4]; 処理 }

とりあえず、sarの出力結果の内、頭4行と最終行は不要。
1行目:空行
2行目:「OS名 ホスト名 OSバージョン カーネルバージョン アーキテクチャ 日付」
3行目:空行
4行目:「時間 %usr %sys %wio %idle」
最終行:「Average 平均値」

headとlastを使って抜き出そうかとも思ったんですが、結局if/unlessで判断することに。もっと適切な方法もありそうなんですが...。