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
# 8  
Old 09-27-2006
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

# 9  
Old 09-27-2006
or a little bit verbose with the ksh

./samit.sh emailkey1

samit.sh:
Code:
#!/bin/ksh

key="${1}"

file='abc.txt'

while IFS=':' read keyCurrent addr
do
   if [ "${keyCurrent}" = "${key}" ]; then
      [ "${first}" -eq 0 ] && printf "${addr}" ||  printf ",${addr}"
      first=$(($first + 1))
   fi

done < "${file}"
printf "\n"

# 10  
Old 09-27-2006
Thanks for those answers. Appreciate your help

i tried something from my end

for sAddress in `grep ^emailkey1 abc.txt | sed 's/^.*\://'`
do
sMailGroup=$sAddress","$sMailGroup
done

Thanks once again!!!

Sam
# 11  
Old 09-27-2006
If speed is a consideration then you will want to stick with an AWK solution.
# 12  
Old 09-28-2006
If the keys are identical for more than one user, why not put both, or all emails with the same key on one line using the comma delimter you need anyway. Then you could just use something simple like:
Code:
sMailGroup='grep ^emailkey1 abc.txt | awk -F":" '{print $NF}'`

# 13  
Old 09-28-2006
Simple approach...
Code:
$ grep emailkey1 abc.txt
emailkey1:sam@abc.com
emailkey1:tom@abc.com

$ grep emailkey1 abc.txt | cut -d: -f2
sam@abc.com
tom@abc.com

$ grep emailkey1 abc.txt | cut -d: -f2 | paste -s -d,
sam@abc.com,tom@abc.com

# 14  
Old 09-28-2006
Alternative in Python
Code:
#!/usr/bin/python
input = raw_input("Enter email key:" )
all = open("abc.txt").readlines()
email = [items.strip().split(":")[-1] for items in all if input in items]
print "%s:" % input , ','.join(email)

Output:
Code:
/home:> python test.py
Enter email key:emailkey1
emailkey1: sam@abc.com,tom@abc.com

 
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