how to calculate busy hour

Dear All,
please tell me any script which can able to calculate the bus hours by claculating the volume for example
hour volume
1 100
2 200
3 300
4 7000
5 50
6 80
7 77
8 77
9 165
10 888
11 99
12 89
13 33
14 676
15 878
16 90
17 56
18 11
19 123
20 144
21 155
22 177
23 190
24 19

BUSY HOUR= 4
busy hour is 4 because the maximum volume is 7000 at 4.

kinldy any body can give me the scirpt which can do this .

Try this:

sort -n -k2 filename |  awk 'END{NF=$RS; print "BUSY HOUR="$1}'

Dear All,

I am giving u the actual file but its seperated by "," comma.
all field actually separted by comma can u do this for this file

HOURS AccRq SucAcc FailAcc SucAccStart
0 18301 18301 0 18368
1 9412 9412 0 9452
2 7697 7697 0 7730
3 5060 5060 0 5068
4 3960 3960 0 3972
5 3837 3837 0 3851
6 5047 5047 0 5069
7 6102 6102 0 6124
8 8361 8361 0 8377
9 10183 10183 0 10206
10 14669 14669 0 14706
11 16577 16577 0 16622
12 12347 12347 0 12383
13 9040 9040 0 9067
14 8051 8051 0 8074
15 10818 10818 0 10792
16 20399 20399 0 20453
17 41259 41259 0 41514
18 36523 36523 0 36825
19 13581 13581 0 13734
20 12576 12576 0 12685
21 11332 11332 0 11432
22 13457 13457 0 13583
23 10898 10898 0 10996

output should be

BUSY HOUR =17
i am calculating on the basis of second field which is accrq and the highest value is 41259 against that walue the hour is 17.
so kindly tell me the script which can give me the output

BUSY HOUR =17

Try this:

sed -n '2,$p' filename | sed 's/,/ /g' |sort -n -k2 |  awk 'END{NF=$RS; print "BUSY HOUR="$1}'

hi
thanx for ur support but when i am excuting ur statement it is not giving me any value.
the output will come like
BUSY HOUR=
so please kindly help me in this regard

Please try this out..........

cat <<filename>> | sort -nr -t',' -k2 | head -1 | awk 'END{ print $1" :- is BUSY Hour"}'

Dear
still its giving no value the output is some what like
:- is BUSY Hour
there is no value

echo "Busy Hour = "`sort -k2nr file | sed q |awk '{print $1}'`

works to produce the outpit you requested...

just modified a little bit

can u try it out
cat <<filename>> | sort -nr -t',' -k2 | head -1 | awk -F"," 'END{ print $1" :- is BUSY Hour"}'

HI

Just to inform you that i have tried your last given command and again its not returning any value.
Just displaying Busy Hour.

and regarding your previous command
echo "Busy Hour = "`sort -k2nr file | sed q |awk '{print $1}'`
when i am executing this one it will give me the wrong value instead of giving me the max value from 2nd col and should give the left most col value.

so please kindly check it again.

Regards,
shary

I guess all the above solutions should work without any issues. I have tested mine and it works fine as well. Seems like it can be field seperator issue in the file which you are trying.

hi
but i am using the field sperator "," comma.

Try this:

awk 'BEGIN{FS=","}NR==1{next}$2>m{h=$1;m=$2}END{print "BUSY HOUR = " h}' file

Regards

hi
thanx alot its working.
please if you dont mind can you explain me the last statement i cannot able to understand what is happening inside the awk like next,NR etc...
reagards,
shary

Sure,

BEGIN{FS=","}NR==1{next}$2>m{h=$1;m=$2}END{print "BUSY HOUR = " h}' file

m is a variable for the max value
h is a variable for the hour

BEGIN{FS=","} = set fieldseperator

NR==1{next} = ignore 1st record

$2>m{h=$1;m=$2} = if 2nd field is greater than the last greatest value set m with the new value and set variable h with the hour

END{print "BUSY HOUR = " h} = print the the hour with the highest value of the 2nd field

Regards