Hi,
I have a file with the contents as below,
10:23:10 GOOD 10.30.50.60
10:23:11 GOOD 10.30.50.62
10:23:12 Hello 10.30.50.60
10:23:12 BAD 10.30.50.60
10:23:13 GOOD 10.30.50.66
10:23:14 BAD 10.30.50.62
10:23:15 Hello 10.30.50.66
10:23:16 Hello 10.30.50.66
10:23:16 BAD 10.30.50.66
I need the output like this,
No of Hello for 10.30.50.60: 1
No of Hello for 10.30.50.66: 2
Also
No of Hello for 10:23 (time) : 3
Please anyone suggest a script for this.
Thanks in advance
$ awk '$2=="Hello" {count["Number of "$2" for "$3]++}END{for(j in count) print j":",count[j]}' gobi1.txt
Number of Hello for 10.30.50.60: 1
Number of Hello for 10.30.50.66: 2
//Jadu
And,
$ awk '$2=="Hello" {count["Number of "$2" for "substr($1,1,5)]++}END{for(j in count) print j"(time):",count[j]}' gobi1.txt
Number of Hello for 10:23(time): 3
//Jadu
Or:
awk '{a[$4 " in " $5]++
b[$4" for "$1":"$2]++;next}
END{
for ( i in a )
print "No of "i":" a
print "---------------------------"
for ( i in b )
print "No of "i"(time):" b
}' FS="( )|(:)"file
No of GOOD in 10.30.50.60:1
No of GOOD in 10.30.50.62:1
No of GOOD in 10.30.50.66:1
No of BAD in 10.30.50.60:1
No of Hello in 10.30.50.60:1
No of BAD in 10.30.50.62:1
No of BAD in 10.30.50.66:1
No of Hello in 10.30.50.66:2
---------------------------
No of Hello for 10:23(time):3
No of BAD for 10:23(time):3
No of GOOD for 10:23(time):3