Loop with multiple delimited variables


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Loop with multiple delimited variables
# 1  
Loop with multiple delimited variables

hi,

i need a portion in a audit logging shell script where i have to loop thru multiple variables.
I need some help in accomplishing this. i have 3 variables
Code:
var1=1,23,234
var2=a,ab,xyz
var3=0,0,0

the variables will have variables number of values but same length.(3 in this case )

i need to be able to loop thru values in var1 and get the values of all the variables to execute some commands.

Code:
while IFS=',' read var1 var2 var2
do
  echo "$var1 1 st value   $var2   first value   $var3 first value"

so for 1 st loop for var1 1 i need to use 1 ,a and 0 in a insert script to some tables. so they need to avaliable in 3 different variables so i can do
insert into table values ($var1, $var2, $var3)

in this case i will get
Code:
insert into table (1,'a',0)
insert into table (23,'ab',0)
insert into table 234,'xyz',0)

thanks in advance for some help

Last edited by Scrutinizer; 03-09-2016 at 02:25 PM.. Reason: code tags
# 2  
Please use code tags as required by forum rules!

Quote:
Originally Posted by rock1
.
.
.
the variables will have variables number of values but same length.(3 in this case )
.
.
.
What does that mean? It obviously contradicts what your sample looks like...?
# 3  
try something like:
Code:
var1=1,23,234
var2=a,ab,xyz
var3=0,0,0

IFS="," arr1=($var1)
IFS="," arr2=($var2)
IFS="," arr3=($var3)

seq 0 2 | while read i
do
   echo " insert into table (${arr1[$i]}, '${arr2[$i]}', ${arr3[$i]});"
done

This User Gave Thanks to rdrtx1 For This Post:
# 4  
Howsoever, given the variables as presented in post#1, and bash available, how about
Code:
IFS=, read -a A <<<$var1
IFS=, read -a B <<<$var2
IFS=, read -a C <<<$var3
for i in ${!A[@]}; do echo "insert into table (${A[$i]}, ${B[$i]}, ${C[$i]});" ; done
insert into table (1, a, 0);
insert into table (23, ab, 0);
insert into table (234, xyz, 0);

Quotation of the string values left as an exercise for the reader.
# 5  
sorry i meant the number of variable value in each variable will always be the same. if var1 has 3 comma separated values so will var2 and var 3.

---------- Post updated at 12:47 PM ---------- Previous update was at 12:39 PM ----------

thanks rdrtx1 and RudiC.. rdrtx1 can you please explain how seq 0 2 works . i would like to understand this ,,is it based on the number of values in the csv variable? thanks
# 6  
Code:
seq --h

# 7  
Quote:
Originally Posted by rdrtx1
try something like:
Code:
var1=1,23,234
var2=a,ab,xyz
var3=0,0,0

IFS="," arr1=($var1)
IFS="," arr2=($var2)
IFS="," arr3=($var3)

seq 0 2 | while read i
do
   echo " insert into table (${arr1[$i]}, '${arr2[$i]}', ${arr3[$i]});"
done


So the number of values in the variables may not be the same always. So should I can calculate the length first and use that in the code. This example has 3 for each variable.. but it could be 2 or 4. thanks

---------- Post updated at 01:16 PM ---------- Previous update was at 12:54 PM ----------

Quote:
Originally Posted by rdrtx1
Code:
seq --h

thanks I did something like this:

Code:
var1=1,23,234,1
var2=a,ab,xyz,z
var3=0,0,0,1

len=`echo $var1 | awk -F '[,]' '{print  NF}'`
echo "$len"

--4

Last edited by Scrutinizer; 03-09-2016 at 04:14 PM.. Reason: Code tags and spelling
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #273
Difficulty: Easy
In December 1939, Turing solved the essential part of the naval indicator system, which was easier and less complex than the indicator systems used by the other services.
True or False?

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Displaying multiple variables in for loop

Hi! I've run into a problem where my variables are displayed in the wrong order. Basically I'm supposed to use a file that has information like this username:firstname:lastname:etc:etc. What I'm interested in doing is reformating it into a something more like this: username lastname,... (2 Replies)
Discussion started by: reindeermountai
2 Replies

2. Shell Programming and Scripting

Multiple variables using awk and for loop for web form submission

Hi My goal is to fill an HTML form and submit. What I have managed to do: 1. curl command to fill up the form and submit 2. a file which has the input curl command: curl -v -b cookie.txt -d __CSRFToken__=dc23d5da47953b3b390ec68d972af10380908b14 -d do=create -d a=open -d... (10 Replies)
Discussion started by: zorrox
10 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. UNIX for Dummies Questions & Answers

Multiple variables to be passed in a loop

Hi, I need to pass the multiple values of src1 to another variable. I managed to print it but not sure how to assign it to a variable in a loop. src1=01,02,03 echo $src1|awk 'BEGIN {FS=","} {for(i=1;i<=NF;i++) print $i}' I need to pass the value as src2=01 src2=02 src2=03 Thanks... (4 Replies)
Discussion started by: shash
4 Replies

5. Shell Programming and Scripting

How to use for/while loop with multiple variables?

Hi, I have two variables like below which will always be of the same size a=1:2:3 b=A:B:C I need to use a for/while loop that will have both the variables available. I cannot use an array here and will probably might iterate through the variable as echo $a | tr ':' '\n' and thus iterate... (5 Replies)
Discussion started by: Elizabeth H
5 Replies

6. UNIX for Dummies Questions & Answers

For Loop for a list of tab delimited variables

Hello, I need to run a command for a set of input variables that are present in a tab delimited file, a sample of which is shown below: 1 3749 1 4129 1 5980 2 6201 2 9925 2 6894 3 1338 3 6477 3 6242 3 3632 Every row represents the two input values... (2 Replies)
Discussion started by: Gussifinknottle
2 Replies

7. UNIX for Dummies Questions & Answers

multiple variables in for loop

hi, I want an equivalent for loop for this C code in unix shell script... for(int i,int j;i<5;i++,j++) { } Please reply soon Regards Navjot (1 Reply)
Discussion started by: navjotsingh
1 Replies

8. Shell Programming and Scripting

While loop with Multiple variables

Hi , I am trying to write a script in kshell with while loop ,its like count=1 count_cmp=1 while ; do tail -$count tempfile | head -1 > tempstring ....... done However i get CIF.sh: line 33: ' I have checked thetrailing spaces , not sure what is... (4 Replies)
Discussion started by: amit1_x
4 Replies

9. Shell Programming and Scripting

for loop with multiple variables ?

I have a script which selects two 'sets' of system LVM device files from a tabular file 'mapfile' using awk : LIVELV=`awk '{print($1)}' mapfile` BCVLV=`awk '{print($3)}' mapfile` I wanted to pass these 'sets' into an LVM command 'loop' along the lines of : lvmerge $BCVLV $LIVELV ie.... (3 Replies)
Discussion started by: fosterian
3 Replies

Featured Tech Videos