Reading multiple values from multiple lines and columns and setting them to unique variables.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Reading multiple values from multiple lines and columns and setting them to unique variables.
# 1  
Old 05-23-2014
Reading multiple values from multiple lines and columns and setting them to unique variables.

Hello,

I would like to ask for help with csh script.

An example of an input in .txt file is below, the number of lines varies from file to file and I have 2 or 3 columns with values. I would like to read all the values (probably one by one) and set them to independent unique variables that can be used later for mathematical operations or "cat" outputs. Is it possible to do it in C-shell? I would not like to change the shell because I want to add this part to my "value extraction" script which I made.

Thanks for the help.
Code:
125 143 19
149 153  5
216 224  9
226 247 22
250 254  5
255 275 21
290 292  3
296 302  7
306 323 18
326 339 14
348 371 24
378 406 29
410 414  5
415 423  9


Moderator's Comments:
Mod Comment Please use code tags next time for your code and data. Thanks

Last edited by FMMOLA; 05-23-2014 at 12:17 PM..
# 2  
Old 05-23-2014
Welcome to forums, please describe your query clearly, how do you expect output ? can we have sample output for example input you have posted.
# 3  
Old 05-23-2014
Quote:
Originally Posted by Akshay Hegde
Welcome to forums, please describe your query clearly, how do you expect output ? can we have sample output for example input you have posted.
Thanks for the message. I am sorry I thought it was clear enough. Actually I am not expecting any output just assiging the values to variables (if that is what you meant):

Code:
"variable n1" = 125
"variable n2" = 143
"variable n3" = 19
etc

Then I want to use these variables in specific format to write to .txt file which will be used as an input for further calculations by other program.
# 4  
Old 05-23-2014
if you describe the 'specific format' AND what the 'further calculations' are maybe you don't need 'variables' (most likely not) and everything (including the calculations) can be done in one step.
# 5  
Old 05-23-2014
OK I did not want to go to much into details... So I want to use whose variables to write to the new text file e.g. out_PyMOL_angles_{$pdbid}.txt (which will be actually a PyMOL script to calculate structural properties in the protein e.g. angle between two helices) such as:

Code:
cat > out_PyMOL_angles_{$pdbid}.txt << EOF -- $pdbid has been defined already

# Output for generating helix assignement in $pdbid.txt
async=0
select HELIX1, /$pdbid//$ChainId/$variable n1 - $variable n2/ -- where $variable n1 is 125 and $variable n2 is 143 (first line column 1 and column 2)
select HELIX2, /$pdbid//$ChainId/$variable n4 - $variable n5/ -- where $variable n4 is 149 and $variable n5 is 153 (second line column 1 and column 2)
angle_between_helices HELIX1, HELIX2

EOF

But with the above part I am fine.

I just need to set/assign all the values from the original .txt file into unique variables:

Code:
125 143 19
149 153  5
216 224  9
226 247 22
250 254  5
255 275 21
290 292  3
296 302  7
306 323 18
326 339 14
348 371 24
378 406 29
410 414  5
415 423  9

# 6  
Old 05-23-2014
something along these line?:
Code:
 awk '{printf("select HELIX%d, /$pdbid//$ChainId/%d - %d/\n", FNR, $1,$2)}' myFile

Unless you want do the actual substruction of numbers?
Code:
 awk '{printf("select HELIX%d, /$pdbid//$ChainId/%d/\n", FNR, $1-$2)}' myFile

This User Gave Thanks to vgersh99 For This Post:
# 7  
Old 05-23-2014
Wow using the first option I have got the exact thing I wanted. Thank you very much:
Code:
select HELIX1, /1DB1//A/125 - 143/
select HELIX2, /1DB1//A/149 - 153/
select HELIX3, /1DB1//A/216 - 224/
select HELIX4, /1DB1//A/226 - 247/
select HELIX5, /1DB1//A/250 - 254/
select HELIX6, /1DB1//A/255 - 275/
select HELIX7, /1DB1//A/290 - 292/
select HELIX8, /1DB1//A/296 - 302/
select HELIX9, /1DB1//A/306 - 323/
select HELIX10, /1DB1//A/326 - 339/
select HELIX11, /1DB1//A/348 - 371/
select HELIX12, /1DB1//A/378 - 406/
select HELIX13, /1DB1//A/410 - 414/
select HELIX14, /1DB1//A/415 - 423/

there was only a small modification needed to get the $pdbid and $ChainId values correctly.
Code:
 awk '{printf("select HELIX%d, /'$pdbid'//'$ChainId'/%d - %d/\n", FNR, $1,$2)}' myFile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Split into multiple files by using Unique columns in a UNIX file

I have requirement to split below file (sample.csv) into multiple files by using the unique columns (first 3 are unique columns) sample.csv 123|22|56789|ABCDEF|12AB34|2019-07-10|2019-07-10|443.3400|1|1 123|12|5679|BCDEFG|34CD56|2019-07-10|2019-07-10|896.7200|1|2... (3 Replies)
Discussion started by: RVSP
3 Replies

2. Shell Programming and Scripting

Removing carriage returns from multiple lines in multiple files of different number of columns

Hello Gurus, I have a multiple pipe separated files which have records going over multiple Lines. End of line separator is \n and records going over multiple lines have <CR> as separator. below is example from one file. 1|ABC DEF|100|10 2|PQ RS T|200|20 3| UVWXYZ|300|30 4| GHIJKL|400|40... (7 Replies)
Discussion started by: dJHa
7 Replies

3. UNIX for Dummies Questions & Answers

Reading multiple variables in a loop

Hi, I managed to read and print variable as shown in the below code. table_name=table1,table2,table3 i=0 IFS="," for i in $table_name do echo $i done Is there a way how I can read more than one variable. For example I need to read 2 variables and populate the output... (6 Replies)
Discussion started by: shash
6 Replies

4. Shell Programming and Scripting

Count Unique values from multiple lists of files

Looking for a little help here. I have 1000's of text files within a multiple folders. YYYY/ /MM /1000's Files Eg. 2014/01/1000 files 2014/02/1237 files 2014/03/1400 files There are folders for each year and each month, and within each monthly folder there are... (4 Replies)
Discussion started by: whegra
4 Replies

5. Shell Programming and Scripting

Read record from the text file contain multiple separated values & assign those values to variables

I have a file containing multiple values, some of them are pipe separated which are to be read as separate values and some of them are single value all are these need to store in variables. I need to read this file which is an input to my script Config.txt file name, first path, second... (7 Replies)
Discussion started by: ketanraut
7 Replies

6. Shell Programming and Scripting

[Solved] Counting The Number of Lines Between Values with Multiple Variables

Hey everyone, I have a bunch of lines with values in field 4 that I am interested in. If these values are between 1 and 3 I want it to count all these values to all be counted together and then have the computer print out LOW and the number of lines with those values in between 1 and 3,... (2 Replies)
Discussion started by: VagabondGold
2 Replies

7. Shell Programming and Scripting

Add unique header to multiple lines

I have a file of lines with the following format: AACCCGTAGATCCGAACTTGTG ACCCGTAGATCCGAACTTGTG CCGTAGATCCGAACTTGTG CGTAGATCCGAACTTGT I want to give a header to each line, using awk, where the header is equal to the line that follows, like this: >AACCCGTAGATCCGAACTTGTG ... (2 Replies)
Discussion started by: Palgrave
2 Replies

8. Shell Programming and Scripting

Reading multiple values in while loop

I'm having trouble with a simple piece of code. IFS=, echo "1,2,3,4,5,6,7,8" | while read x y do echo "x=$x" echo "y=$y" done I'm hoping for x=1 y=2 x=3 y=4 . . . but I'm getting x=1 (3 Replies)
Discussion started by: sabbata
3 Replies

9. Programming

Reading multiple columns in C++

Dear all, I am novice in C+= programing. I would like to seek help in one of the progra. Here it is, I have txt file which has the data as following order varA varB -21 0 -21.2 3, 4, 5, 6 -21.4 45, 65, 87, 98, 98 -22.0 345677, 349887, 98766, 877654, 987543 -23.0 76549,... (17 Replies)
Discussion started by: emily
17 Replies

10. Shell Programming and Scripting

Awk match multiple columns in multiple lines in single file

Hi, Input 7488 7389 chr1.fa chr1.fa 3546 9887 chr5.fa chr9.fa 7387 7898 chrX.fa chr3.fa 7488 7389 chr21.fa chr3.fa 7488 7389 chr1.fa chr1.fa 3546 9887 chr9.fa chr5.fa 7898 7387 chrX.fa chr3.fa Desired Output 7488 7389 chr1.fa chr1.fa 2 3546 9887 chr5.fa chr9.fa 2... (2 Replies)
Discussion started by: jacobs.smith
2 Replies
Login or Register to Ask a Question