#!/usr/bin/perl use strict; use warnings; use IO::Uncompress::AnyUncompress ":all"; my %data; my %data2; my @archs = ("source", "all", "amd64", "arm64", "i386", "alpha", "arm", "armel", "armhf", "hppa", "hurd-i386", "ia64", "kfreebsd-amd64", "kfreebsd-i386", "mips", "mipsel", "powerpc", "ppc64el", "s390", "s390x", "sparc"); for my $file (@ARGV) { my $FH = new IO::Uncompress::AnyUncompress $file, Transparent => 1 or warn "Cannot open $file: $AnyUncompressError\n"; while (<$FH>) { if (/^(\d{8})\d{6}\|(?:k(?:atie|elly)|process-(?:accepted|upload))(?:\|dak)?\|installed\|[^|]+\|[^|]+\|(\d+)\|([-\w]+)$/) { if (not defined $data{$1}) { foreach $a (@archs) { $data{$1}{$a} = 0; } } $data{$1}{$3} += $2; $data2{$1}{$3}++; } } } foreach my $p (sort keys %data) { print "$p"; foreach $a (@archs) { print ", $data{$p}{$a}"; } print "\n"; }