awk script to calculate total


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk script to calculate total
# 1  
Old 11-24-2008
awk script to calculate total

Hi
First field is the Record Type. A Record Type 5 can have multiple Record Type 6's before another Record Type 5 appears.

I want to calculate the total of fields at position 8-11 on Record type 6 when Record Type 5 has a field at position 11-14 equals to '2222'. then it should delete the lines of Record Type 6 except the the first Record Type 6 for that Record Type 5 only. Please help

1 101 201 301
5 test 4444 1233
6 1212 1222 3434 33
7 6464 122
8 3664 123
5 test 2222 1233
6 1212 1222 3434 33
7 4464 322
6 1212 4222 3434 33
7 4464 522
6 1212 6222 3434 33
6 1212 7222 3434 33
8 8664 823
5 test 4444 1233
6 1212 1222 3434 33
7 2464 122
8 3664 123
5 test 4444 1233
6 1212 1222 3434 33
7 7464 122
8 5664 123
5 test 2222 1233
6 61212 1222 3434 33
7 6764 122
8 9664 123
9 3332434 334344


so the output should be

1 101 201 301
5 test 4444 1233
6 1212 1222 3434 33
7 6464 122
8 3664 123
5 test 2222 1233
6 1212 18888 3434 33
7 4464 322
7 4464 522
8 8664 823
5 test 4444 1233
6 1212 1222 3434 33
7 2464 122
8 3664 123
5 test 4444 1233
6 1212 1222 3434 33
7 7464 122
8 5664 123
5 test 2222 1233
6 61212 1222 3434 33
7 6764 122
8 9664 123
9 3332434 334344
# 2  
Old 11-25-2008
If the data is as shown in your sample data, the following works
Code:
BEGIN { state=sum=0 }
{
   if (state == 0) {
      print
      if ( $1 == "5" && $3 == "2222" ) {
          state=1
          sum=0
      }
   } else {
      if ( $1 == "6" && state == 1 ) {
          tmp6=$0
          tmp7="XXX"
          state=2
      }
      if ( state == 2 ) {
         if ( $1 == "6" ) { sum = sum + $3 }
         if ( $1 == "7" ) {
            if (tmp7 == "XXX")
                tmp7=$0
            else
                tmp7=tmp7"\n"$0
         }
      }
      if ( $1 == "8" ) {
        split(tmp6, a ," ")
        print a[1], a[2], sum, a[4], a[5]
        print tmp7
        print
        state=0
      }
   }
}

# 3  
Old 11-25-2008
hi
The script should be irrespective of record Type 7,8. It should depend on Record Type 5 and 6. so basically every Record Type 5 can have multiple Record Type 6's. So I want to calculate the total for each group of Record Type 6's when field on Record Type 5 is equal to '2222'

I appreciate ur help.
Please help
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calculate total memory using free -m

Hi I am trying to calculate memory used by Linux System free -m total used free shared buffers cached Mem: 32109 31010 1099 0 3600 7287 -/+ buffers/cache: 20121 11987 Swap: 10239 1282 8957 Now according to my requirement Im calculating memory using below cmd free -m | awk 'NR==3{printf... (2 Replies)
Discussion started by: sam@sam
2 Replies

2. Shell Programming and Scripting

awk to calculate total and percent off field in file

Trying to use awk to print the lines in file that have either REF or SNV in $3, add a header line, sort by $4 in numerical order. The below code does that already, but where I am stuck is on the last part where the total lines are counted and printed under Total_Targets, under Targets_less_than is... (4 Replies)
Discussion started by: cmccabe
4 Replies

3. Shell Programming and Scripting

Help with calculate the total sum of record in column one

Input file: 101M 10M10D20M1I70M 10M10D39M4I48M 10M10D91M 10M10I13M2I7M1I58M 10M10I15M1D66M Output file: 101M 101 0 0 10M10D20M1I70M 100 1 10 10M10D39M4I48M 97 4 10 10M10D91M 101 0 10 10M10I13M2I7M1I58M 88 13 0 10M10I15M1D66M 91 10 1 I'm interested to count how many total of... (6 Replies)
Discussion started by: perl_beginner
6 Replies

4. Shell Programming and Scripting

Calculate the total

Hi All , I have the following script as below , I tried to modify to meet the requirement , could someone help ? very thanks ================================================================================================ while read STR NAME; do Total=0 MyString="$STR" GetData () {... (18 Replies)
Discussion started by: ust3
18 Replies

5. Shell Programming and Scripting

Calculate total value from a row

HI I have a file # cat marks.txt MARKS LIST 2013 Name english french chinese latin total_marks wer 34 45 67 23 wqa 12 39 10 56 wsy 23 90 23 78 Now i need to find the total marks of each student using... (11 Replies)
Discussion started by: Priya Amaresh
11 Replies

6. Shell Programming and Scripting

Calculate total of log by hour

Hi, Just wondering, is there anyway I can get the total of logs generated by hours ? Let say I have these logs, Sep 23 04:48:43 hsbcufs: NOTICE: realloccg /: file system full Sep 23 04:48:47 hsbcufs: NOTICE: alloc: /: file system full Sep 23 04:48:51 hsbcufs: NOTICE: realloccg /: file... (14 Replies)
Discussion started by: dehetoxic
14 Replies

7. Shell Programming and Scripting

Calculate total space, total used space and total free space in filesystem names matching keyword

Good afternoon! Im new at scripting and Im trying to write a script to calculate total space, total used space and total free space in filesystem names matching a keyword (in this one we will use keyword virginia). Please dont be mean or harsh, like I said Im new and trying my best. Scripting... (4 Replies)
Discussion started by: bigben1220
4 Replies

8. Shell Programming and Scripting

Calculate total sum from a file

The file content is dynamic and using this format: name1 number1 name2 number2 name3 number3 name4 number4 .................... Need a smooth way to calculate the sum of all the numbers in that file (number1 + number2 + number3 + number4........ = total ) (11 Replies)
Discussion started by: TehOne
11 Replies

9. Shell Programming and Scripting

Awk help needed to calculate total

Hi all, I have a flat file like 10 steven 25 mike 47 Charles 127 Nancy 34 steven 23 mike 67 Charles 7761 Nancy 8 steven 54 mike 88 Charles 1267 Nancy I need to calculate the total of steven and all the members , for this I am using like grep "`sed -n 1p patterns.txt`"... (7 Replies)
Discussion started by: senthilkumar_ak
7 Replies
Login or Register to Ask a Question