Help extracting single instance of numbers which repeat


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help extracting single instance of numbers which repeat
# 1  
Old 02-28-2013
Help extracting single instance of numbers which repeat

Hi, the title isn't very descriptive but it'll be easier to explain what I need if I write out the coordinates from which I need to extract certain information:

Code:
ATOM   2521  C   MAM X  61      44.622  49.357  12.584  1.00  0.00           C
ATOM   2522  H   MAM X  61      43.644  49.102  12.205  1.00  0.00           H
ATOM   2523  C11 MAM X  61      45.498  50.039  11.772  1.00  0.00           C
ATOM   2536  C   MAM X  62      35.964  51.167  53.648  1.00  0.00           C
ATOM   2537  H   MAM X  62      36.622  51.061  52.798  1.00  0.00           H
ATOM   2538  C11 MAM X  62      36.278  52.149  54.641  1.00  0.00           C
ATOM   2551  C   MAM X  63      57.273  40.310  20.752  1.00  0.00           C
ATOM   2552  H   MAM X  63      57.185  39.814  19.797  1.00  0.00           H
ATOM   2553  C11 MAM X  63      58.520  40.106  21.426  1.00  0.00           C
ATOM   2566  C   MAM X  64      38.293  39.258   1.527  1.00  0.00           C
ATOM   2567  H   MAM X  64      37.235  39.061   1.426  1.00  0.00           H
ATOM   2568  C11 MAM X  64      38.719  40.568   1.353  1.00  0.00           C
ATOM   2581  C   MAM X  65      37.737  30.472  26.042  1.00  0.00           C
ATOM   2582  H   MAM X  65      37.065  31.282  25.801  1.00  0.00           H
ATOM   2583  C11 MAM X  65      37.283  29.302  26.675  1.00  0.00           C
ATOM   2596  C   MAM X  66      31.049  29.707   3.564  1.00  0.00           C
ATOM   2597  H   MAM X  66      31.141  30.714   3.184  1.00  0.00           H
ATOM   2598  C11 MAM X  66      29.856  29.416   4.253  1.00  0.00           C
ATOM   2611  C   MAM X  67      52.602  26.469  10.601  1.00  0.00           C
ATOM   2612  H   MAM X  67      52.385  25.997  11.548  1.00  0.00           H
ATOM   2613  C11 MAM X  67      53.918  26.586  10.166  1.00  0.00           C
ATOM   2626  C   MAM X  68      15.973  78.046  54.402  1.00  0.00           C
ATOM   2627  H   MAM X  68      15.990  78.975  53.853  1.00  0.00           H
ATOM   2628  C11 MAM X  68      14.881  77.168  54.242  1.00  0.00           C

In the 25th and 26th columns (may be some variation from copy/paste editing) there are two-digit numbers between 61 and 68 in the block I've posted above. What I need to be able to do is extract each of those numbers once only and pass each instance into separate, independent variables. Therefore given that there are 8 separate numbers (61-68) I need 8 separate variables corresponding to each.

Any help greatly appreciated. Bash or Python would be easiest for me. Many thanks.

Last edited by crunchgargoyle; 02-28-2013 at 03:41 PM.. Reason: Clarity
# 2  
Old 02-28-2013
Try:
Code:
awk '{print substr($0,25,2)}' file | sort | uniq

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 02-28-2013
Thank you, that extracts the numbers I need from the file with a 'grep' command at the beginning.

How would I go about assigning them to variables sequentially?
# 4  
Old 02-28-2013
Code:
... | sort | uniq | while read var; do
  do something with $var here
done

This User Gave Thanks to bartus11 For This Post:
# 5  
Old 02-28-2013
Only print unique field 6
Code:
awk '!x[$6]++ {print $6}' file

print complete line
Code:
awk '!x[$6]++' file

This User Gave Thanks to Jotne For This Post:
# 6  
Old 02-28-2013
I need to assign each individual number to an individual variable, though.
# 7  
Old 02-28-2013
Code:
... | sort | uniq | tr '\n' ' ' | read var1 var2 var3 ...

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to repeat a character in a field if it's a single character?

I have a csv dataset like this : C,rs18768 G,rs13785 GA,rs1065 G,rs1801279 T,rs9274407 A,rs730012 I'm thinking of use like awk, sed to covert the dataset to this format: (if it's two character, then keep the same) CC,rs18768 GG,rs13785 GA,rs1065 GG,rs1801279 TT,rs9274407... (7 Replies)
Discussion started by: nengcheng
7 Replies

2. UNIX for Advanced & Expert Users

How to check a single process instance is always running?

Hi, I want to write one program in C in Unix OS which will check the running status of a process time to time. If the process is stopped somehow by any means, it will ensure that the process is restarted and only one copy of the process image should run in memory at any point of time for the user.... (2 Replies)
Discussion started by: sanzee007
2 Replies

3. Shell Programming and Scripting

Extracting numbers

Hi I am part of a academic organization and I want to send a fax to the students however there must be a quicker way to get the fax numbers extracted from the online forms they sent me. The file looks like this (numbers are fake in order to protect identity): Biochemistry Major Michael... (3 Replies)
Discussion started by: phil_heath
3 Replies

4. Shell Programming and Scripting

help needed to put instance numbers

Hi All I need help am having a source file as below emp dept class subclass region country division first i need to get line count and i need to divide by 3 it is an parameter passing value number of lines 7 (8 Replies)
Discussion started by: ragu.selvaraj
8 Replies

5. AIX

HACMP 5.4.1->5.5 offline upgrade - different instance numbers ?

Hello, I did offline HACMP(PowerHA) upgrade 5.4.1 to 5.5 - basically stopped HACMP services and upgraded cluster.* filesets. Tried to start services again - topsvcs refused to start on second node complaining that node instance numbers are different - and indeed they are different. This is... (2 Replies)
Discussion started by: vilius
2 Replies

6. Shell Programming and Scripting

Extracting text between two strings, first instance only

There are a lot of ways to extract text from between two strings, but what if those strings occur multiple times and you only want the text from the first two strings? I can't seem to find anything to work here. I'm using sed to process the text after it's extracted, so I prefer a sed answer, but... (4 Replies)
Discussion started by: fubaya
4 Replies

7. UNIX for Dummies Questions & Answers

Extracting numbers and multipling

Hi All, I have searched the forum but couldn't find exactly what I need. Hopefully someone may be able to help. I'm trying to put a script together that will extract numbers from a text file and multiply them by, for example 1.5 or 1.2 Sample file looks like this...... (1 Reply)
Discussion started by: speedfreak
1 Replies

8. Shell Programming and Scripting

getopts ... only allow a single instance of an argument?

Hi there, if i have a simple getopts like below ...how can i make it so that if somebody enters more than one -g argument for example, it will error with a " you cannot enter more than one -g" or something like that.? I want to only allow one instance of a -g or a -h etc .. while getopts... (1 Reply)
Discussion started by: hcclnoodles
1 Replies

9. Shell Programming and Scripting

Single Instance

Hi, I have a script. I want only one instance of the script to be running at any point of the time. How can I do it. what would be the exact format of the ps command for doing this. For example the name of my script is "Inst.sh" Thanx in advance (2 Replies)
Discussion started by: sendhil
2 Replies

10. Shell Programming and Scripting

Single Instance of a Shell Script

Hi, I have a shell script. What should I do to allow only single instance of the script to be run by a user at a time. That is, Only one user can run that script at a given point of time. Please help.. Its very important for my project Thanks in advance (4 Replies)
Discussion started by: pathanjalireddy
4 Replies
Login or Register to Ask a Question