Thread Datenauswertung die etwas größer ist
(15 answers)
Opened by Willifred71 at 2012-01-03 17:05
mal kurz ungetestet zusammengestellt:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 #!/usr/bin/perl use strict; use warnings; use Text::CSV; use Date::Parse; my $infile='datensatz.csv'; my $outfile='daten_out.txt'; # Ergebnisse. Jedes Jahr ein Arrayeintrag. my @result; # ein Jahr in Sekunden my $one_year=60*60*24*365; # für besseren Wert nutze ein Date Calc Modul # aktueller timestamp; my $now=time(); my $csv = Text::CSV->new() or die( "ERROR CSV: ".Text::CSV->error_diag()."\n" ); open(my $ifh, '<', $infile) or die("ERROR open $infile ($!)\n"); while(my $row = $csv->getline($ifh) ) { my $date=str2time($row->[0]); my $size=$row->[1]; # Modulo war Unsinn my $years=int(($now-$date)/$one_year); $result[$years]->{size}+=$size; $result[$years]->{count}++; } close($ifh); # Ausgabe: open(my $ofh, '>', $outfile) or die("ERROR open $outfile ($!)\n"); for my $year (0..$#result) { next unless($result[$year]); printf $ofh "Daten Alter älter als %u Jahr; Anzahl %u Dateien mit %u Byte Größe\n", $year, $result->{count}, $result->{size}; } close(my $ofh); EDIT: Blödsinn korrigiert. Last edited: 2012-01-04 00:36:00 +0100 (CET) |