2012-11-27 10 views
14

द्वारा गिनती लाइनों को गिनने का आदेश कितना बार होगा कि हमने कितनी बार घंटे या मिनट तक कुछ पंक्ति देखी थी?घंटे

फ़ाइल:

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 

आउटपुट मैं चाहते हैं को देखने के लिए:

मिनट से:

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

घंटे के हिसाब से:

Nov 26 08  7 
+0

आप सभी अपने जवाब :) बहुत मदद के लिए धन्यवाद । – Jola

+1

क्या तिथि बदल गई है? क्या आप सभी दिनों में 08:50 के लिए आउटपुट की तलाश कर रहे हैं, या हर दिन 08:50 के लिए? –

उत्तर

26

यह 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 पहले n वर्णों से अधिक की तुलना करें।

-c घटनाओं की संख्या से उपसर्ग रेखाएं।

+4

+1 बहुत रचनात्मक – kev

+0

"लेकिन क्या होगा यदि दिन <10 बिना 0 के लिखे गए हैं? ओह प्रतीक्षा करें o_O यह X_X काम करेगा"। अच्छा काम +1 – Utopik

+1

यह बहुत अच्छा है, लेकिन मुझे यह इंगित करना है कि यह समाधान केवल लिनक्स-केवल है। * बीएसडी (ओएसएक्स समेत) में 'uniq' में' -w' विकल्प शामिल नहीं है। – ghoti

1

तक घंटे:

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

नीचे का परीक्षण किया:

> 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 
> 

करके मिनट:

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

नीचे का परीक्षण किया:

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

awk एक लाइनर आप एक शॉट में घंटे और मिनट से गिनती देता है:

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 

परीक्षण

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]}'  

उत्पादन

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

इसके लिए धन्यवाद, बस मुझे जो चाहिए था। एक पाइप और सॉर्ट करना '| सॉर्ट 'सब कुछ सही क्रम में भी मिल सकता है। – dgig