Extract variable name in a string


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Extract variable name in a string
# 1  
Old 12-12-2013
Extract variable name in a string

Hi,
I'm doing a script to list all scripts called by a "master" script.
But I have an issue as there is some variables in the name of the called scripts.

Example:
Code:
% cat master_script.sh
ENVIR=PROD
VERSION=1.2
/users/maturix/$ENVIR/program_$VERSION.sh

I would like my script displays a kind of grep "\.sh" master_script.sh but by replacing the variables by their content, to have such output:
Code:
/users/maturix/PROD/program_1.2.sh

Note that the variables are not only these ones ENVIR & VERSION.

I did something like that to modify the variable between two /:
Code:
var=$(grep "\.sh" master_script.sh | sed 's/\//\n/g' | grep '^\$')
var_content=$(grep "^$(echo $var | cut -c 2-100)=" master_script.sh | cut -d'=' -f2)
grep "\.sh" master_script.sh | sed "s/$var/$var_content/g"

Which give as result:
/users/maturix/PROD/program_$VERSION.sh

Now I need to change $VERSION with its content, and more generally I will have other cases, not only variable between // or before a "."
Is there a generic way to extract the variable names from a string ?

Last edited by maturix; 12-12-2013 at 10:37 AM..
# 2  
Old 12-12-2013
hi ur explantion is bit confusing

did u try using double quotes
Code:
" "

# 3  
Old 12-12-2013
My question is how from a text get the variable declare in it.
I success to do it if the variable is between two slash /.
My problem now is to do it whatever the caracters before and after.

How to get the word starting by a $ ?

(I've updated my question to make it clearer I hope).

Last edited by maturix; 12-12-2013 at 10:38 AM..
# 4  
Old 12-12-2013
does this answer your question

Code:
user010@sshell ~ $ cat new.sh
ENVIR=PROD VERSION=1.2
#/users/maturix/$ENVIR/program_$VERSION.sh
echo "/users/maturix/$ENVIR/program_$VERSION.sh"
user010@sshell ~ $ ./new.sh
/users/maturix/PROD/program_1.2.sh

# 5  
Old 12-12-2013
no I don't want to modify the master_script (which is used in my prod).
I need to do a new script which read master_script.sh and which displays all the scripts called by it.
# 6  
Old 12-12-2013
Take a look at what you have written...
Code:
/users/maturix/PROD/program_$VERSION.sh

Code:
ENVIR=PROD
VERSION=1.2

Now PROD is a _value_ of variable ENVIR, and, ($)VERSION is a variable itself...

Are you after the _values_, the variable names, or, a combination of both?

I suspect you want the _values_:-
PROD
...and...
1.2
...but I could be wrong...
# 7  
Old 12-12-2013
At the end I want the text with the value instead of the variable, i.e. :
/users/maturix/PROD/program_1.2.sh

But if I can get the variable name in a first step, then I know how to retrieve the variable value and replace the name by the value.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search String and extract few lines under the searched string

Need Assistance in shell programming... I have a huge file which has multiple stations and i wanted to search particular station and extract few lines from it and the rest is not needed Bold letters are the stations . The whole file has multiple stations . Below example i wanted to search... (4 Replies)
Discussion started by: ajayram_arya
4 Replies

2. Shell Programming and Scripting

Extract a string from a file and store it in variable

Hi, I've a file ImageSizeDetails.txt with the following contents: Image Name: swncd 01.10.00.04 Created: Wed Jan 9 14:05:48 2013 Image Type: ARM Linux Multi-File Image (gzip compressed) Data Size: 7351011 Bytes = 7178.72 kB = 7.01 MB Load Address: 00008000 Entry Point: ... (6 Replies)
Discussion started by: Parameswaran
6 Replies

3. Shell Programming and Scripting

Search for string in a file, extract two another strings and concatenate to a variable

I have a file with <suit:run date="Trump Tue 06/19/2012 11:41 AM EDT" machine="garg-ln" build="19921" level="beta" release="6.1.5" os="Linux"> Need to find word "build" then extract build number, which is 19921 also release number, which is 6.1.5 then concatenate them to one variable as... (6 Replies)
Discussion started by: garg
6 Replies

4. Shell Programming and Scripting

to extract string from main string and string comparison

continuing from my previous post, whose link is given below as a reference https://www.unix.com/shell-programming-scripting/171076-shell-scripting.html#post302573569 consider there is create table commands in a file for eg: CREATE TABLE `Blahblahblah` ( `id` int(11) NOT NULL... (2 Replies)
Discussion started by: vivek d r
2 Replies

5. Shell Programming and Scripting

sed - extract string before "/" from variable- linux 2.6.9-89

Hi, I have a FTP script which gets called from a wrapper script that exports a variable having value as: "/export/home/dips/logs/dipsSFTP_file1.log.YYYYMMDDHHMISS". I want to extract the file name "dipsSFTP_file1.log.YYYYMMDDHHMISS" and the dir path "/export/home/dips/logs/" from this... (4 Replies)
Discussion started by: dips_ag
4 Replies

6. Shell Programming and Scripting

sub-string extract between variable delimiters

I need to extract certain pieces from a string, wher delimiters may vary. For example A0 B0 C0 12345677 X0 Y0 Z0 A1-B1 C1 12345678 X1 Y0 Z0 A1/B2 C77 12345679 X2 Y0 Z0 I need to get C0 12345677 X0 C1 12345678 X1 C77 12345679 X2 I tried sed, see example below: echo 'A0 B0... (2 Replies)
Discussion started by: migurus
2 Replies

7. Shell Programming and Scripting

Search for string in a file and extract another string to a variable

Hi, guys. I have one question: I need to search for a string in a file, and then extract another string from the file and assign it to a variable. For example: the contents of the file (group) is below: ... ftp:x:23: mail:x:34 ... testing:x:2001 sales:x:2002 development:x:2003 ...... (6 Replies)
Discussion started by: daikeyang
6 Replies

8. UNIX for Dummies Questions & Answers

Using GREP to extract variable following a string

Hello, I'm running calculations and I need to extract a specific number from a output file. So far I've only been able to GREP entire lines containing the string: '1 F=' . I would like to go a step further and extract just the number following '1 F='. The entire line looks like: 1 F=... (10 Replies)
Discussion started by: modey3
10 Replies

9. Shell Programming and Scripting

How to extract variable number from a String

hi,I am new to shell script,I have String,like this: Number of rows exported: 5321 the numbe at end could changing,how can I extract this number and assign it to a variable,then use it later in script. thanks. (19 Replies)
Discussion started by: vitesse
19 Replies

10. UNIX for Dummies Questions & Answers

extract from string variable into new variables

I have a variable which consists of a string like this: 001 aaabc 44 a bbb12 How do I extract each substring, delimited by the spaces, into new variables - one for each substring? eg var1 will be 001, var2 will be aaabc, var3 will be 44, var4 will be a, etc? I've come up with this:... (2 Replies)
Discussion started by: Sniper Pixie
2 Replies
Login or Register to Ask a Question