2012-11-27 26 views
14

Điều gì sẽ là lệnh để đếm số lần chúng ta thấy một số dòng theo giờ hoặc theo phút?đếm các dòng theo giờ

File:

Nov 26 08:50:51 
Nov 26 08:50:51 
Nov 26 08:51:09 
Nov 26 08:51:09 
Nov 26 08:51:09 
Nov 26 08:51:09 
Nov 26 08:51:40 

Output Tôi muốn xem:

bởi phút:

Nov 26 08:50 2 
Nov 26 08:51 5 

theo giờ:

Nov 26 08  7 
+0

Cảm ơn tất cả các bạn cho câu trả lời của bạn :) giúp rất nhiều . – Jola

+1

Điều gì xảy ra nếu ngày thay đổi? Bạn đang tìm kiếm đầu ra cho 08:50 trong tất cả các ngày, hoặc cho 08:50 mỗi ngày? –

Trả lời

26

Điều này có thể được thực hiện với uniq :

$ uniq -w9 -c file  # by hour 
     7 Nov 26 08:50:51 
$ uniq -w12 -c file  # by minute 
     2 Nov 26 08:50:51 
     5 Nov 26 08:51:09 

-w so sánh không quá n ký tự đầu tiên.

-c dòng tiền tố theo số lần xuất hiện.

+4

+1 rất sáng tạo – kev

+0

"nhưng điều gì sẽ xảy ra nếu ngày <10 được viết mà không cần dẫn đầu 0? Oh wait o_O Nó sẽ hoạt động X_X". Công việc tốt +1 – Utopik

+1

Điều này thật tuyệt, nhưng tôi phải chỉ ra rằng giải pháp này chỉ là Linux. 'Uniq' trong * BSD (bao gồm OSX) không bao gồm tùy chọn' -w'. – ghoti

1

By giờ:

awk '{split($3,a,":");b[$1" "$2" "a[1]]++}END{for(i in b)print i,b[i]}' your_file 

thử nghiệm Dưới:

> awk '{split($3,a,":");b[$1" "$2" "a[1]":"a[2]]++}END{for(i in b)print i,b[i]}' temp 
Nov 26 08:50 2 
Nov 26 08:51 5 
> 

By phút:

awk '{split($3,a,":");b[$1" "$2" "a[1]":"a[2]]++}END{for(i in b)print i,b[i]}' your_file 

thử nghiệm dưới đây:

> awk '{split($3,a,":");b[$1" "$2" "a[1]]++}END{for(i in b)print i,b[i]}' temp 
Nov 26 08 7 
2

các awk một lót mang đến cho bạn đếm theo giờ và phút trong một shot:

awk -F: '{h[$1]++;m[$1":"$2]++;}END{for(x in h)print x,h[x]; print "---"; for(x in m)print x,m[x]}' file 

kiểm tra

kent$ echo "Nov 26 08:50:51 
Nov 26 08:50:51 
Nov 26 08:51:09 
Nov 26 08:51:09 
Nov 26 08:51:09 
Nov 26 08:51:09 
Nov 26 08:51:40"|awk -F: '{h[$1]++;m[$1":"$2]++;}END{for(x in h)print x,h[x]; print "---"; for(x in m)print x,m[x]}'  

đầu ra

Nov 26 08 7 
--- 
Nov 26 08:50 2 
Nov 26 08:51 5 
+1

Cảm ơn vì điều này, chỉ cần những gì tôi cần. làm một đường ống và sắp xếp '| sắp xếp 'có thể nhận mọi thứ theo đúng thứ tự. – dgig

Các vấn đề liên quan