my %ext; while (<>) { next unless /\S/; /(\.[^.]+)?$/; $ext{lc($1||"")}++; } printf "%-6s %d\n",$_||'',$ext{$_} for sort keys %ext;