#!/usr/bin/env perl require 5.005; use warnings; use strict; my %totalcount = (); my %totalsize = (); while (<>) { my ( $header, $folder, $size ) = m#(\S+)\s+(.*\S)\s+(\S+)#; defined $size or next; $header eq 'Folder:' or next; ++$totalcount{$folder}; if ( $size eq '' || $size =~ /\D/ ) { warn sprintf "strange size %s for destination %s, ignored\n", $size, $folder; } else { $totalsize{$folder} += $size; } } my $sumcount = 0; my $sumsize = 0; foreach my $folder ( sort { $totalcount{$a} <=> $totalcount{$b} } keys %totalcount ) { printf "%d\t%d\t%s\n", $totalcount{$folder}, $totalsize{$folder}, $folder; $sumcount += $totalcount{$folder}; $sumsize += $totalsize{$folder}; } printf "%d\t%d\t(total)\n", $sumcount, $sumsize;