Dato un file di grandi dimensioni di input che assomiglia a questo:Come scrivere questo meglio in perl
02/26/2012 08:54:38 Error:java.sql.Exception
02/26/2012 08:54:48 Error:java.sql.Exception
02/26/2012 08:56:05 Error:java.sql.Exception
02/26/2012 08:57:21 Error:java.sql.Exception
02/26/2012 08:59:29 Error:java.sql.Exception
02/26/2012 09:01:14 Error:java.sql.Exception
02/26/2012 09:08:48 Error:java.sql.Exception
02/26/2012 09:10:41 Error:java.sql.Exception
Sto cercando di scoprire il conteggio degli errori per ora; vale a dire, sto cercando un file di output che assomiglia a questo:
02/26/2012 08 -> 5
02/26/2012 09 -> 3
Ecco uno script che sta lavorando per me:
#!/bin/perl
open(MYFILE, 'tata2');
my %table;
while (<MYFILE>) {
chomp;
$dtkey = substr $_, 0, 13;
$table{$dtkey}++;
}
close(MYFILE);
for my $key (keys %table) {
print "$key -> $table{$key}\n";
}
Ma dato le caratteristiche del Perl, io sono abbastanza sicuro che questo può essere fatto in meno righe. Apprezzerei molto se è possibile fornire alcuni esempi. Spero che sia utile per coloro che vogliono ridurre le righe di codice scritte per ottenere qualcosa.
'usare rigorosamente; utilizzare gli avvisi; ' – Ether
Non Perl, ma' sed 's /:.*//' | uniq -c' –