Assign comma separated values to a variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Assign comma separated values to a variable
# 1  
Old 03-27-2017
Hammer & Screwdriver Assign comma separated values to a variable

Hi All,

I wrote a database command that queries our application and outputs a whole bunch of values to a text file. I need to assign the output to two values.

Here is a sample of the output:

Code:
 valueOne, checkOne
 valueTwo, checkTwo
 valueThree, checkThree

I would like to assign each row to a variable, variable1 and variable2 respectively, and then pass it into a custom XML script that I am generating.

Any thoughts on the best approach? perl sed awk?
# 2  
Old 03-27-2017
perl, sed, awk, even shell can do it. So the question is, what language do you know.

Shell code:

Code:
while IFS=", " read variable1 variable2 # Read lines splitting on spaces and commas
do
        echo "variable1=${variable1} variable2=${variable2}"
done < inputfile

# 3  
Old 03-29-2017
Thanks much for your response. This appears to be almost working.

Here is what I am working with

Code:
while IFS=", " read field1 field2 
do
		echo "${field2}" >> allINeed.txt
done < input.txt

Some of the output that I am getting is like this:

Code:
TEST-TEST1234 TESTED TEST, TEST1234

When I run the code you suggested, I am getting this output:

Code:
TESTED TEST, TEST1234

What is the best approach to use IFS, given the spaces in the first field.
# 4  
Old 03-29-2017
You would be better to direct the output to the file with the done like this:-
Code:
while IFS="," read whatever
do
   something
done < input_file > output_file

You can append to the file rather than overwrite it if you need to, of course.

I don't see how you get the new output from what you had at the beginning. Perhaps you could show us some meaningful input too along with how you are getting it/calling it.

Are you getting a single, comma separated line from your database query? If there are no other messages, you could avoid the temporary file and read from the process.

For ksh try:-
Code:
db-query | IFS="," read var1 var2

For bash maybe try:-
Code:
IFS="," read var1 var2 < <(db-query)

They both depend on cleaning the output to be just a single line. For sqlplus you can add various things, such as the -S flag and ensure you have set heading off, set feedback off and possibly other things to turn off. Other databases have similar concepts to leave you just the raw output.


I hope that this helps,
Robin
# 5  
Old 03-29-2017
Hi robin, thank you for the output. It is a db2 query that does an export/select against a few tables and returns a comma separated text file. Here are some of the examples.. no sql plus here Smilie

Code:
testoutput1, testgroup1
test-output2, testgroup2
test-output3 thisisatest, testgroup3
test output4-test, testgroup4

The real and meaningful output that I need is everything after the comma. I need that written to a text file.
# 6  
Old 03-29-2017
How about
Code:
cut -d, -f2- file
 testgroup1
 testgroup2
 testgroup3
 testgroup4

# 7  
Old 03-29-2017
Quote:
Originally Posted by RudiC
How about
Code:
cut -d, -f2- file
 testgroup1
 testgroup2
 testgroup3
 testgroup4

Will def. give this a try!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert fixed value fields to comma separated values

Hi All, Hope you are doing Great!!!. Today i have came up with a problem to say exactly it was for performance improvement. I have written code in perl as a solution for this to cut in specific range, but it is taking time to run for files thousands of lines so i am expecting a sed... (9 Replies)
Discussion started by: mad man
9 Replies

2. Shell Programming and Scripting

Parsing Comma Separated values to UNIX variable from PLSQL

Hi All, I'm trying to pass the comma separated values (string) returned from Plsql Procedure to UNIX variable. getting the below log message cat: -: Bad file descriptor awk: cmd. line:1: fatal: error reading input file `-': Bad file descriptor The output coming from plsql procedure is... (3 Replies)
Discussion started by: Mahesh3089
3 Replies

3. Shell Programming and Scripting

Comma separated values to individual lines

My OS : RHEL 6.7 I have a text file with comma separated values like below $ cat testString.txt 'JOHN' , 'KEITH' , 'NEWMAN' , 'URSULA' , 'ARIANNA' , 'CHENG', . . . . I want these values to appear like below 'JOHN' , 'KEITH' , 'NEWMAN' , 'URSULA' , 'ARIANNA' , 'CHENG', .... (4 Replies)
Discussion started by: kraljic
4 Replies

4. 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

5. Shell Programming and Scripting

Needs help in parsing comma separated values

hello experts, i am retrieving values in variables jobKey and jobName within my shell script. these values are returned to me within braces and i am using following command to remove those braces: jobKeys=`echo $jobKeys | sed 's:^.\(.*\).$:\1:'` jobNames=`echo $jobNames | sed... (1 Reply)
Discussion started by: avikaljain
1 Replies

6. UNIX for Dummies Questions & Answers

[solved] Comma separated values to space separated

Hi, I have a large number of files which are written as csv (comma-separated values). Does anyone know of simple sed/awk command do achieve this? Thanks! ---------- Post updated at 10:59 AM ---------- Previous update was at 10:54 AM ---------- Guess I asked this too soon. Found the... (0 Replies)
Discussion started by: lost.identity
0 Replies

7. Shell Programming and Scripting

To agregate Comma separated values

Hi pls help me to get the code: i have a file in which content is : 2.01304E+11 2.01304E+11 ori 2 01:00 2.01304E+11 2.01304E+11 ori 2 01:02 2.01304E+11 2.01304E+11 ori 3 01:02 2.01304E+11 2.01304E+11 ori 3 ... (7 Replies)
Discussion started by: Aditya.Gurgaon
7 Replies

8. Shell Programming and Scripting

Input Validation of comma separated values

Hello all, I am working on a script and have the first part solved of numerical input validation. Below the code validates that the input is a numerical value between 100 and 1000. If not, it errors out. Now I need to be able to read values separated by a comma. For example, instead of my... (5 Replies)
Discussion started by: LinuxRacr
5 Replies

9. Shell Programming and Scripting

Extracting the values separated by comma

Hi, I have a variable which has a list of string separated by comma. for ex , Variable=/usr/bin,/usr/smrshbin,/tmp How can i get the values between the commas separately using shell scripts.Please help me. Thanks, Padmini. (6 Replies)
Discussion started by: padmisri
6 Replies

10. Shell Programming and Scripting

Splitting comma separated values into an array

I'm attempting to create a KSH array out of a string like this: ",,,value1,value2,," I have created the array but I only get two elements, one for value1 and one for value2. I have ended up with something like this but I don't like it: set -A JUNK xx=0 for i in $(print ",,,value1,value2,,"... (3 Replies)
Discussion started by: tmarikle
3 Replies
Login or Register to Ask a Question