Extracting the values separated by comma


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extracting the values separated by comma
# 1  
Old 07-31-2009
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.
# 2  
Old 07-31-2009
try..
Code:
-bash-3.2$ Variable=/usr/bin,/usr/smrshbin,/tmp
-bash-3.2$ echo $Variable | awk -F, '{print $1,$2}'
/usr/bin /usr/smrshbin
-bash-3.2$ echo $Variable | awk -F, '{print $1}'
/usr/bin
-bash-3.2$ echo $Variable | awk -F, '{print $1,$2,$3}'
/usr/bin /usr/smrshbin /tmp
-bash-3.2$

# 3  
Old 07-31-2009
Hi,

Thanks for the reply.But in this case , i dont know the no of string values(for the above case it is 3 but actual case it is not fixed) i will be getting.How can i handle that?
# 4  
Old 07-31-2009
try this.
Code:
-bash-3.2$ echo $Variable
/usr/bin,/usr/smrshbin,/tmp,/tmp,/opt,/test
-bash-3.2$ echo $Variable | awk -F, '{ for (i = 1; i < NF; ++i ) print $i }'
/usr/bin
/usr/smrshbin
/tmp
/tmp
/opt
-bash-3.2$

oops last field missing just replace with "i <= NF"
# 5  
Old 07-31-2009
You can also use an array (bash version) :
Code:
var=/usr/bin,/usr/smrshbin,/tmp,/tmp,/opt,/test
IFS=, paths=($var)
for (( i=0; i<${#paths[@]}; i++ ))
do
   echo "[$i] ${paths[$i]}"
done

Output:
Code:
[0] /usr/bin
[1] /usr/smrshbin
[2] /tmp
[3] /tmp
[4] /opt
[5] /test

Jean-Pierre.
# 6  
Old 07-31-2009
Thanks for the reply.

---------- Post updated at 12:41 PM ---------- Previous update was at 12:24 PM ----------

Hi,
Depending on the above output, i need to assign the separated values to variables by dynamically creating them . how is that possible?
# 7  
Old 07-31-2009
You can assign it to array, which was already answered by Jean-Pierre.
Here's my method though
Code:
-bash-3.2$ array=(`echo $Variable | sed 's/,/\n/g'`)
-bash-3.2$ echo ${array[0]}
/usr/bin
-bash-3.2$ echo ${array[1]}
/usr/smrshbin
-bash-3.2$ echo ${array[2]}
/tmp

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

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: valueOne, checkOne valueTwo, checkTwo valueThree, checkThree I would like... (9 Replies)
Discussion started by: jeffs42885
9 Replies

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

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

script to store comma separated values in different variables

Hello friends, I need ur help.I want to write a script. The script should read contents from a file namely xyz. e.g xyz abcd,1234,efgh,7854378 dhnsa,dsakjkdl,43432,ZXDsa the script should store comma (,) seperated values in different variables. Once pointer will reach end of line (\n), it should... (1 Reply)
Discussion started by: akhtar.bhat
1 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