Please help me for calculation between record


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Please help me for calculation between record
# 1  
Old 11-29-2017
Please help me for calculation between record

Code:
HETATM 1302  O   HOH A 201      35.586  -3.107  15.593  0.50  2.00           O  
HETATM 1303  O   HOH A 202      32.775  19.569  17.309  0.61 23.79           O  
HETATM 1304  O   HOH A 203      26.017  14.450  13.420  1.00 28.93           O  
HETATM 1305  O   HOH A 204      21.850   8.006   2.571  0.62 32.64           O  
HETATM 1306  O   HOH A 205      24.749  14.198   2.809  1.00 37.57           O


I want to calculate 6 field (201,202,203,204,205) between records.
* No overlap (201 * 201) , No inverse order (202*201)


Code:
201 * 202
201 * 203
201 * 204
201 * 205
202 * 203
202 * 204
202 * 205
203 * 204
203 * 205
204 * 205





I tried that

------------------------------------------------------

Code:
#!/bin/awk
  
   for (i=1; i<=FNR; i++) {
      if (FNR == i) {
      a = $6
       for (j=i+1; j<=FNR; j++) {
        b = $6
      print a*b
     }
   }
 }

------------------------------------------------



but It doesn't run.

Please help me nice Linux guys
Thank you.


Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 11-29-2017 at 12:57 PM.. Reason: Added CODE tags.
# 2  
Old 11-29-2017
Welcome to the forum.

Please become accustomed to provide decent context info of your problem.

It is always helpful to carefully and detailedly phrase a request, and to support it with system info like OS and shell, related environment (variables, options), preferred tools, adequate (representative) sample input and desired output data and the logics connecting the two including your own attempts at a solution, and, if existent, system (error) messages verbatim, to avoid ambiguities and keep people from guessing.

What should your output look like?
# 3  
Old 11-29-2017
Here is something to start with:-
Code:
awk '
        {
                A[++c] = $6
        }
        END {
                for ( i = 1; i <= c; i++ )
                        for ( j = i+1; j <= c; j++ )
                                printf "%d * %d = %d\n", A[i], A[j], (A[i] * A[j])
        }
' file

Will generate below output for your input:-
Code:
201 * 202 = 40602
201 * 203 = 40803
201 * 204 = 41004
201 * 205 = 41205
202 * 203 = 41006
202 * 204 = 41208
202 * 205 = 41410
203 * 204 = 41412
203 * 205 = 41615
204 * 205 = 41820

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need code for updating second record to first record in shell scripting

Hi,, I have requirement that i need to get DISTINCT values from a table and if there are two records i need to update it to one record and then need to submit INSERT statements by using the updated value as a parameter. Here is the example follows.. SELECT DISTINCT ID FROM OFFER_GROUP WHERE... (1 Reply)
Discussion started by: Samah
1 Replies

2. Shell Programming and Scripting

Replace a string for every record after the 1st record

I have data coming in the below format for each record <?xml version="1.0" encoding="UTF-8" standalone="no"?><test_sox xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><testdetials>....</test_sox> <?xml version="1.0" encoding="UTF-8" standalone="no"?><test_sox... (8 Replies)
Discussion started by: dsravanam
8 Replies

3. Shell Programming and Scripting

Extract timestamp from first record in xml file and it checks if not it will replace first record

I have test.xml <emp><id>101</id><name>AAA</name><date>06/06/14 1811</date></emp> <Join><id>101</id><city>london</city><date>06/06/14 2011</date></join> <Join><id>101</id><city>new york</city><date>06/06/14 1811</date></join> <Join><id>101</id><city>sydney</city><date>06/06/14... (2 Replies)
Discussion started by: vsraju
2 Replies

4. Shell Programming and Scripting

How to compare current record,with next and previous record in awk without using array?

Hi! all can any one tell me how to compare current record of column with next and previous record in awk without using array my case is like this input.txt 0 32 1 26 2 27 3 34 4 26 5 25 6 24 9 23 0 32 1 28 2 15 3 26 4 24 (7 Replies)
Discussion started by: Dona Clara
7 Replies

5. Shell Programming and Scripting

Reject the record if the record in the next line does not begin with 2.

Hi, I have a input file with the following entries: 1one 2two 3three 1four 2five 3six 1seven 1eight 1nine 2ten 2eleven 2twelve 1thirteen 2fourteen The output should be: (5 Replies)
Discussion started by: supchand
5 Replies

6. Shell Programming and Scripting

Reject the record if the record in the next line does not satisfy the pattern

Hi, I have a input file with the following entries: 1one 2two 3three 1four 2five 3six 1seven 1eight 1nine 2ten The output should be 1one 2two 3three 1four 2five 3six (2 Replies)
Discussion started by: supchand
2 Replies

7. Shell Programming and Scripting

Testing Next Record before processing is done on that Record

I am trying to see if there is a way in awk to test the next record before processing. All I am trying to do is see if the next line equal something then turn a flag off. Example: Problem Cron IneedThis KeyOnThis somemoredata somemoredata Cron somemoredata somemoredata IneedThis... (7 Replies)
Discussion started by: timj123
7 Replies

8. UNIX for Advanced & Expert Users

Print Full record and substring in that record

I have i got a requirement like below. I have input file which contains following fixed width records. 00000000000088500232007112007111 I need the full record and concatenated with ~ and characters from 1to 5 and concatenated with ~ and charactes from 10 to 15 The out put will be like... (1 Reply)
Discussion started by: ukatru
1 Replies

9. UNIX for Dummies Questions & Answers

how to read record by record from a file in unix

Hi guys, i have a big file with the following format.This includes header(H),detail(D) and trailer(T) information in the file.My problem is i have to search for the character "6h" at 14 th and 15 th position in all the records .if it is there i have to write all those records into a... (1 Reply)
Discussion started by: raoscb
1 Replies

10. Shell Programming and Scripting

splitting a record and adding a record to a file

Hi, I am new to UNIX scripting and woiuld appreicate your help... Input file contains only one (but long) record: aaaaabbbbbcccccddddd..... Desired file: NEW RECORD #new record (hardcoded) added as first record - its length is irrelevant# aaaaa bbbbb ccccc ddddd ... ... ... (1 Reply)
Discussion started by: rsolap
1 Replies
Login or Register to Ask a Question