For Loop and concetnating values in a variable


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers For Loop and concetnating values in a variable
# 15  
Old 09-29-2006
Thanks all of you for the various solutions.

Appreciate your help
# 16  
Old 10-02-2006
Hi Ygor,

I tried using this

grep emailkey1 abc.txt | cut -d: -f2 | paste -s -d,

However it errored out saying

paste: Usage: paste [-s] [-d List ] File1 ...
# 17  
Old 10-02-2006
It worked for me. Perhaps your version of paste needs space between "-d" and ","?
# 18  
Old 10-03-2006
Quote:
Originally Posted by vgersh99
one way:
Code:
nawk -F: -v OFS=',' -v key='emailkey1' '$1==key {arr[key] = (key in arr) ? arr[key] OFS $2 : $2} END {print arr[key]}' abc.txt

Dear vgersh99,

I have one question about your code, normally we refer to an array by the subscript where subscript is a number, but in your code you have used arr[key] where key='emailkey1' how it works? and how awk keeps track of subscript in that case? And while printing also you have used the same thing that print arr[key] and it prints all the elements of array based on subscript arr[emailkey1], its really confusing for me.

Your explanation would be highly appreciated.

Cheers,
An Awk student
# 19  
Old 10-03-2006
Quote:
Originally Posted by Glenn Arndt
My method is similar (not as slick), but doesn't use arrays...
Code:
awk -F: -v key="emailkey2" '
 BEGIN { addrlist=0 }
 $1 ~ key {
   addr=$2
   if (addrlist == 0) {
     addrlist=addr
   } else {
     addrlist=addrlist "," addr
   }
 }
 END { print addrlist }' abc.txt

Dear Glen,

Just want to clarify one thing about $1 ~ key, that here match operator ~ was not required, because as per my understanding, match operator is required only in case where we have to compare a value against a regular expression, for comparing values against variables or constants we can use something like $1==key am I right?

It would be hightly appreciated if you can elaborate the detailed use of match operator ~

Cheers,
An Awk student
# 20  
Old 10-03-2006
Quote:
Originally Posted by nervous
Dear vgersh99,

I have one question about your code, normally we refer to an array by the subscript where subscript is a number, but in your code you have used arr[key] where key='emailkey1' how it works? and how awk keeps track of subscript in that case?
awk's arrays are associaitive in nature where the subscript is a 'string' and not necessarilly a 'number'.
Quote:
Originally Posted by nervous
And while printing also you have used the same thing that print arr[key] and it prints all the elements of array based on subscript arr[emailkey1], its really confusing for me.
Iterating through an array based on its subscriipt [a 'key'] we print the content of every array cell [its 'address'].
# 21  
Old 10-03-2006
Quote:
Originally Posted by nervous
Dear Glen,

Just want to clarify one thing about $1 ~ key, that here match operator ~ was not required, because as per my understanding, match operator is required only in case where we have to compare a value against a regular expression, for comparing values against variables or constants we can use something like $1==key am I right?

It would be hightly appreciated if you can elaborate the detailed use of match operator ~
That is correct. I suppose I used "~" out of habit or by mistake. While correct in this case, I'd probably agree that "==" would be the more technically appropriate operator.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Assign Values to a Variable in While Loop and Update the File

Hello, Could anyone please help me with Assigning a value to variable and then updating the value in the original file IFS='|' while read -r Serial_ID JOB_NAME STATUS do if then echo "Perform Fuctions" ???Assign STATUS to COMPLETED and Update File??? done <File (7 Replies)
Discussion started by: infernalhell
7 Replies

2. Shell Programming and Scripting

Variable values within for loop

Hi All I am trying to fetch the size of three files into three separate variables within a for loop and am doing something like this: for i in ATT1 ATT2 ATT3 do size_$i=`ls -ltr $i | awk '{print $5}'` echo ${size_$i} done but am getting the below error: ksh: size_ATT1=522: not... (3 Replies)
Discussion started by: swasid
3 Replies

3. Shell Programming and Scripting

[SOLVED] UNIX FOR loop to read a variable with multiple values

Hi, I have a variable which stores file names as a result of find command. I need to delete all these files one by one, i.e. by a loop. Can anyone tell me how can it be done? The variable f2d has the file names like these abc.txt bcd.txt fff.txt gef.txt Now I have used a loop as... (12 Replies)
Discussion started by: jhilmil
12 Replies

4. Shell Programming and Scripting

Array Variable being Assigned Values in Loop, But Gone when Loop Completes???

Hello All, Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....? I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping through a string containing some of these "Illegal Characters". Now... (5 Replies)
Discussion started by: mrm5102
5 Replies

5. Shell Programming and Scripting

[Solved] Assigning a value to a variable name then running a loop on these values

Hi, I was wondering if anyone could assist me for (what is probably) a very straightforward answer. I have input files containing something like File 1 Apples Apples Apples Apples File 2 Bananas Bananas Bananas Bananas (4 Replies)
Discussion started by: hubleo
4 Replies

6. Shell Programming and Scripting

Using multiple values for single variable in a loop

Hello Guys, I have a small loop problem as below. I have 3 different values to be used while running the same script - va1="some-value1" va2="some-value2" va3="some-value3" Now I want to use these three variable values to be used for running the same command, like - while... (1 Reply)
Discussion started by: rockf1bull
1 Replies

7. UNIX for Advanced & Expert Users

How to read a text file and assign the values in the same to a variable in loop

Hi, I have a text file with multiple lines, each having data in the below format <DOB>,<ADDRESS> I have to write a script which reads each line in the text file in loop, assign the values to these variables and do some further processing in it. Using the following code prints the values... (12 Replies)
Discussion started by: manishab00
12 Replies

8. Shell Programming and Scripting

redirecting values from one variable to another in a loop.

The situation is like this: I am reading records from a file, depending upon some condition extracting fields from the file into different variables in a loop one by one. I need to print all the variable in line, so I am trying to redirect hose variables one by one to a variable called final_value... (1 Reply)
Discussion started by: mady135
1 Replies

9. Shell Programming and Scripting

Variable assignment from a for loop values.

Guys I am trying to assignthe values to variables from a for loop. s1:/tmp> for i in `cat test` > do > echo $i > done Sdosanjh 2 6 Now, I want is NAME=Sdosanjh CURRENT=2 SPECIFIED=6 there are multiple lines in the "test" file. So next time when for loop picks values from next... (1 Reply)
Discussion started by: sdosanjh
1 Replies

10. Shell Programming and Scripting

getting values from variable in a loop

I have a set of variables: f1="./someFolder" . . f10="./someOtherFolder" And I'm trying to use the following loop for (( i = 0; i <= 10; i++ )) do temp=f$i done I'm trying the get the values from my set of variable to make directories, but I can't seem the get those value... (3 Replies)
Discussion started by: kriuz
3 Replies
Login or Register to Ask a Question