![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| how to average in awk | saint2006 | Shell Programming and Scripting | 4 | 06-04-2008 08:29 AM |
| Average completion time calculation? | Seawall | UNIX for Dummies Questions & Answers | 5 | 05-20-2008 03:13 AM |
| average transaction time | nhatch | Shell Programming and Scripting | 2 | 05-02-2007 05:11 AM |
| average value | su_in99 | UNIX for Dummies Questions & Answers | 2 | 03-10-2007 10:41 AM |
| How to find no of occurances Finding average time? | redlotus72 | UNIX Desktop for Dummies Questions & Answers | 1 | 02-21-2005 12:22 PM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Hi Guys,
I am using a command $ runprt_req PPGUS_ROYXN1102 Output: **************** Start Date and Time End Date and Time*** PPGUS_ROYXN1102 01/15/2008 02:20:08 01/15/2008 04:54:50 PPGUS_ROYXN1102 01/12/2008 02:03:57 01/12/2008 04:22:10 PPGUS_ROYXN1102 01/11/2008 02:07:55 01/11/2008 04:28:54 PPGUS_ROYXN1102 01/10/2008 03:13:57 01/10/2008 04:52:24 I need to find the average time between Start and End Time Ex: 02:20:08 - 04:54:50 So the average time is 02:34:02 Similarly i need the average time for the all the columns Ex: Start Time End Time Average Time 02:30 02:40 00:10 03:30 03:30 00:00 ........... I have a very big output, so its difficult to find the average time easily. It will be helpfull for me, if i get a command or a script. I tried using awk command, but i not much familiar with unix, so i didnt get any output except Syntax Error Thanks in Advance. |
| Forum Sponsor | ||
|
|
|
#2
|
|||
|
|||
|
Code:
#!/bin/sh
awk 'NR>1{
n=split($3,starttime,":")
m=split($NF,endtime,":")
s_hr=starttime[1]
s_min=starttime[2]
s_ss=starttime[3]
e_hr=endtime[1]
e_min=endtime[2]
e_ss=endtime[3]
stime = (s_hr * 60 * 60) + (s_min * 60) + s_ss
etime = (e_hr * 60 * 60) + (e_min * 60) + e_ss
timedifference = etime - stime
print timedifference " secs"
# I leave to you to calculate back the average time in hr:min:sec
# hint: take timedifference divide by 3600 to get hr. convert the remainder to min and secs
}
' "file"
|
|||
| Google The UNIX and Linux Forums |