tốt hơn Cho một tập tin đầu vào lớn trông như thế này:Làm thế nào để viết những dòng này trong 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
tôi đang cố gắng để tìm hiểu số lượng các lỗi mỗi giờ; có nghĩa là, tôi đang tìm kiếm một tập tin đầu ra trông như thế này:
02/26/2012 08 -> 5
02/26/2012 09 -> 3
Dưới đây là một kịch bản mà đang làm việc cho tôi:
#!/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";
}
Nhưng với tính năng Perl, tôi khá chắc chắn này có thể được thực hiện trong ít dòng hơn. Tôi rất cảm kích nếu bạn có thể cung cấp một số ví dụ. Tôi hy vọng nó sẽ hữu ích cho những ai muốn giảm dòng mã được viết để đạt được điều gì đó.
'sử dụng nghiêm ngặt; sử dụng cảnh báo; ' – Ether
Không phải Perl, nhưng' sed 's /:.*//' | uniq -c' –