Get the sum of values in between begin and end in the file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Get the sum of values in between begin and end in the file
# 1  
Old 03-18-2013
Get the sum of values in between begin and end in the file

Hi All,
test file
Code:
Begin [test.sh] Script Run at Thu Mar 14 09:24:16 PDT 2013
tst_accounts: ws zip: WS_out_20130313.tar.gz dat: test_20130313.dat count: 63574 loaded: xx pre-merge: xx post-merge: xx timestamp: Thu Mar 14 09:30:42 PDT 2013
tst_accounts: ws zip: WS_out_20130313.tar.gz dat: s_20130313.dat count: 168217 loaded: xx pre-merge: xx post-merge: xx timestamp: Thu Mar 14 09:47:05 PDT 2013
tst_accounts: ws zip: WS_out_20130314.tar.gz dat: area_20130314.dat count: 19732 db table rows: xx timestamp: Thu Mar 14 11:59:28 PDT 2013
End [test.sh] Script Run at Thu Mar 14 11:59:44 PDT 2013
Begin [test.sh] Script Run at Thu Mar 15 09:00:00 PDT 2013
tst_accounts: ws zip: WS_out_20130313.tar.gz dat: test_20130313.dat count: 63574 loaded: xx pre-merge: xx post-merge: xx timestamp: Thu Mar 14 09:30:42 PDT 2013
tst_accounts: ws zip: WS_out_20130313.tar.gz dat: s_20130313.dat count: 168217 loaded: xx pre-merge: xx post-merge: xx timestamp: Thu Mar 14 09:47:05 PDT 2013
tst_accounts: ws zip: WS_out_20130314.tar.gz dat: area_20130314.dat count: 19732 db table rows: xx timestamp: Thu Mar 14 11:59:28 PDT 2013
End [test.sh] Script Run at Thu Mar 15 14:00:00 PDT 2013

i want the output as like below..
For every begin and end i need the count. count need to take the "count:" string followed by the number...

Code:
DATE          START     END     DURATION  # of RECORDS
14-Mar-2013   9:24:16   11:59:44   2:35:28     251523       =>63574+168217+19732
15-Mar-2013   9:00:00   14:00:00   4:00:00     251523      =>63574+168217+19732

Thanks
# 2  
Old 03-18-2013
What have you tried so far?
# 3  
Old 03-18-2013
still i didn't get any idea..
# 4  
Old 03-18-2013
A crude approach( I am assuming that the file format remains same ( no change of field positions etc).

Pls note that , I did not do the calculation of duration here ( you have to find out some way to do it in script).

Code:
awk 'BEGIN { print "DATE          START          END     DURATION  # of RECORDS" }
 /count/  { gsub(".*count:","",$0) ; b+=$1 }
 /Begin/ { s_t=$8"-"$7"-"$NF;s_ts=$9 ; next}
 /End/ {e_t=$8"-"$7"-"$NF;e_ts=$9; print s_t"   "s_ts"   "e_ts"    duration  "b;b=0}' file


Last edited by panyam; 03-18-2013 at 09:47 AM.. Reason: Changed the count logic
# 5  
Old 03-18-2013
Thank@panyam

Can you help me how to find the duratition...

---------- Post updated at 08:28 AM ---------- Previous update was at 07:59 AM ----------

Any help on this one
# 6  
Old 03-18-2013
try the below:

Please note that: I am assuming the start and end time of the script run is on same day and then doing the calculation.

Code:
awk 'BEGIN { print "DATE          START          END     DURATION  # of RECORDS" }
function diff_bw_times(s_time , d_time) {
 split(s_time,ary, /:/); t_s=3600*ary[1] + 60*ary[2] + ary[3];
 split(d_time,arr, /:/); d_s=3600*arr[1] + 60*arr[2] + arr[3];
 diff=d_s - t_s; ho=int(diff/3600) ; mi=int((diff-ho*3600)/60);sec=int(diff-ho*3600-(mi*60)) ; printf("%s:%s:%s\t",ho,mi,sec);
 }
 /count/  { gsub(".*count:","",$0) ; b+=$1 }
 /Begin/ { s_t=$8"-"$7"-"$NF;s_ts=$9 ; next}
 /End/ {
 e_t=$8"-"$7"-"$NF;
 e_ts=$9;
 print s_t "\t" s_ts "\t"  e_ts "\t" diff_bw_times(s_ts , e_ts) "\t" b }' file

# 7  
Old 03-19-2013
Thanks lot, as per my requirement it's running same date.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

File write begin/end, recording time

Hello all, How can I find out the start and end of the writing file in the directory or recording time for writing file? I have a directory where small ~ 1*MB temporary files are written. After the end of the record, they are retrieved and erased. I can only find out that the files are... (4 Replies)
Discussion started by: mrAibo
4 Replies

2. Shell Programming and Scripting

Search ad replace using begin and end of the file

Hello Friends , Please help to create script for compare and replace if not matches of set of lines . * Primary* Servername Server1 Location R201 Rack 4 *End Primary* *Secondary* Server Name Server1 IPAddress 10.24.30.10 Application Apache *End of Secondary* Above... (4 Replies)
Discussion started by: rnary
4 Replies

3. Shell Programming and Scripting

BEGIN and END format in awk

I'm new to awk, trying to understand the basics. I'm trying to reset the counter everytime the program gets a new file to check. I figured in the BEGIN part it would work, but it doesn't. #!/bin/awk -f BEGIN {counter=0} { sum=0 for ( i=1; i<=NF;... (1 Reply)
Discussion started by: guitarist684
1 Replies

4. Shell Programming and Scripting

Begin/End blocks in awk: confused

I am trying to understand how to use the END block in awk without much success. I have this script that I found: gawk '{count++; keyword = $1} if (count == 3) keyword = "order this" else print keyword " " k } }' << orderfile Is that the way that the END block should be used? I am... (6 Replies)
Discussion started by: newbie2010
6 Replies

5. Shell Programming and Scripting

Taking sum up all values inside the file

Hi, Taking sum up all values inside the file by using the below command: paste -sd+ filenmae | bc Getting some error like "0705-001: building space exceeded on line1 stdin" The original data looks like SPACE SPACE SPACE 0.123 JOBNAME1 SPACE SPACE 20.325 JOBNAME2 SPACE SPACE... (2 Replies)
Discussion started by: NareshN
2 Replies

6. Programming

search a file between two begin and end strings in c

Can any one help me out with following problem... I want to search in a file which has two strings repeat each time(like start and end) i want to search between these two string in C programming. please help me with the solution. thanks in advance. (8 Replies)
Discussion started by: uday.sena.m
8 Replies

7. UNIX for Dummies Questions & Answers

Dump to another file for a begin and end Pattern

Hi All , I am newbie to linux shell scripting , below are the contents of my log file , i want the lines between a begin pattern and a end pattern for an instance , my begin Pattern is "Transaction Begins for Usr" and end pattern is "Transaction Ends for Usr" into another file Sample file... (1 Reply)
Discussion started by: SARAVANANE
1 Replies

8. Shell Programming and Scripting

Use of Begin IF ,END IF END not working in the sql script

Hi I have written a script .The script runs properly if i write sql queries .But if i use PLSQL commands of BEGIN if end if , end ,then on running the script the comamds are getting printed on the prompt . Ex :temp.sql After connecting to the databse at the sql prompt i type... (1 Reply)
Discussion started by: isha_1
1 Replies

9. Shell Programming and Scripting

begin end detection

Hi all, i am new to scripting. i need to write a code to detect begin and end of word that either begins or ends with t,th,d,dh,s,sh i have a set of words in a file containg one word per line. let the filename be aaa.txt. i have an another file bbb.txt which has two lines, just specifying the... (7 Replies)
Discussion started by: blkanth
7 Replies

10. Shell Programming and Scripting

BEGIN END questions

Why would you need to use this in a script? Why can't you just use print to print out what you want printed in the begining and print for what you want at the end. So this: nawk 'BEGIN {print "this is the first line"} {print $1 $2 $3} {print $5 $6} END {print "this is the last line"}' ... (2 Replies)
Discussion started by: llsmr777
2 Replies
Login or Register to Ask a Question