Perlテキスト処理・正規表現入門

非常に大きなファイルの処理 part.4 - 列の単位で数字を集計 -

さて、実際に2019年の売上げを集計してみましょう。

対象データ

year,month,sales,profit
2019,1,1000,800
2019,2,2000,900
2019,3,3000,1000

欲しい出力結果

year,sales
2019,6000

データ処理コード(proc_data.pl)

#! /usr/bin/env perl
use strict;
use warnings;

my $sales = 0;
while (my $line = <>) {
  chomp $line;
  my @row = split /,/, $line;

  $sales += $row[2];
  print "$row[0], $row[2]\n";
  print "$row[0], $sales\n";
}

コード実行

$ perl proc_data.pl data.csv

出力結果

Argument "sales" isn't numeric in addition (+) at proc_data.pl line 11, <> line 1.
year, sales
year, 0
2019, 1000
2019, 1000
2019, 2000
2019, 3000
2019, 3000
2019, 6000

なんとか結果は出せましたが、要らない情報がたくさんあります!

次回は、要らない情報を消していきましょう。

目次