Visit Our UNIX and Linux User Community


extracting substrings from variables


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting extracting substrings from variables
# 1  
Old 05-27-2011
extracting substrings from variables

Hello Everyone,

I am looking for a way to extract substrings to local variables. Here is the format of the string variable i am using :

/var/x/www && /usr/x/share/doc && /etc/x/logs

where the substrings i must extract are the "/var/x/www" and such.
I was originally thinking of using something like "awk" to extract each substring and place them in $1, $2.....$NF which would be perfect.
Does anyone have an idea?

Thanks a lot for your replies
# 2  
Old 05-27-2011
try this

Code:
echo $string||awk 'BEGIN{FS="[&][&]"}{for(i=1;i<=NF;i++){print $i}}'

# 3  
Old 05-27-2011
Code:
[ctsgnb@shell ~]$ set -- $(echo '/var/x/www && /usr/x/share/doc && /etc/x/logs' | sed 's/ &&//g')
[ctsgnb@shell ~]$ echo $1
/var/x/www
[ctsgnb@shell ~]$ echo $2
/usr/x/share/doc
[ctsgnb@shell ~]$ echo $3
/etc/x/logs
[ctsgnb@shell ~]$

# 4  
Old 05-27-2011
Hi,

Thank you for your lightning quick reply !! Smilie

I have typed a test script that goes like this :
Code:
#!/bin/bash


var='/var/x/www &&  /usr/x/share/doc &&  /etc/x/logs'

echo $var||awk 'BEGIN{FS="[&][&]"}{for(i=1;i<=NF;i++){print $i}}'

just to test you solution, yet the return is this :
Code:
/var/x/www && /usr/x/share/doc && /etc/x/logs

it seems like the awk does not recognise the && separation

Last edited by Franklin52; 05-27-2011 at 01:50 PM.. Reason: Please use code tags
# 5  
Old 05-27-2011
use "nawk" or "/usr/xpg4/bin/awk" (the POSIX one) instead of the simple "awk" if you are running on SunOS/Solaris plateform

---------- Post updated at 11:03 AM ---------- Previous update was at 11:00 AM ----------

By the way, by using the && as field separator you may get unexpected heading and/or trailing space
# 6  
Old 05-27-2011
thanks for the tipSmilie but i use RedHat platform. here is the shell version :

GNU bash, version 3.1.17(1)-release (x86_64-redhat-linux-gnu)
# 7  
Old 05-27-2011
remove the double pipe between echo and awk. Use only one pipe, it worked on removing it, though strange.

Previous Thread | Next Thread
Test Your Knowledge in Computers #30
Difficulty: Medium
Microsoft was founded in 1971.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Awk: passing shell variables through and extracting text

Hello, new to the forums and to awk. Glad to be here. :o I want to pass two shell (#!/bin/sh) variables through to awk and use them. They will determine where to start and stop text extraction. The code with the variables hard-coded in awk works fine; the same code, but with the shell... (7 Replies)
Discussion started by: bedtime
7 Replies

2. UNIX for Dummies Questions & Answers

Extracting a block of text from a large file using variables?

Hi UNIX Members, I've been tasked with performing the following: Extract a block of data in column form #This data changes each time, therefore automating future procedures Please Note the following: line = reading a line from a file_list that leads to the data The filename is called... (16 Replies)
Discussion started by: Klor
16 Replies

3. Shell Programming and Scripting

Extracting substrings from a string of variable length

I have a string like Months=jan feb mar april x y .. Here the number of fields in Months is not definite I need to extract each field in the Months string and pass it to awk . Don't want to use for in since it is a loop . How can i do it (2 Replies)
Discussion started by: Nevergivup
2 Replies

4. Windows & DOS: Issues & Discussions

Extracting variables between commas : GAWK or SED

Hello, I need some help, I got a CSV file called test.txt with this text in it : 08/02/2011;0,677;0,903;1,079;1,336;1,513;1,683 There's only a line and i need to copy theese numbers into variables : 0,677 0,903 1,079 1,336 1,513 1,683 The output file should look like this... (5 Replies)
Discussion started by: jujulips
5 Replies

5. Shell Programming and Scripting

extracting multiple variables from a filename.

hi all, I'm trying to automate some tasks and while I've got the script itself working, I'm having difficulties with automatic file detection and associated variable setting... for example, in a directory I've got several files... something along the lines of: xis0_NAME_src.file... (2 Replies)
Discussion started by: u5j84
2 Replies

6. Shell Programming and Scripting

Extracting variables from echo

Hello all. I can not remember the command to extract a variable from the date command. Basically what I need to do is to store the values of date in variable and rearrange them. I can not remember the command or the syntax to do so. so.. date Mon Mar 8 06:57:19 GMT 2010 $1 $2 ... (12 Replies)
Discussion started by: adelsin
12 Replies

7. Shell Programming and Scripting

extracting substrings

Hi guys, I am stuck in this problem. Please help. I have two files. FILE1 (with records starting from '>' ) >TC1723_3 similar to Scific_A7Q9Q3 EMSPSQDYCDDYFKLTYPCTAGAQYYGRGALPVYWNYNYGAIGEALKLDLLNHPEYIEQN ATMAFQAAIWRWMNPMKKGQPSAHDAFVGNWKP >TC214_2 similar to Quiet_Ref100_Q8W2B2 Cluster;... (1 Reply)
Discussion started by: smriti_shridhar
1 Replies

8. Shell Programming and Scripting

Extracting a users environment variables

Hi Guys, I want to extract users environment variables via a sh script, and for some reason it is not working. According to the su man page: Example 3: Executing command with user bin's Environment and Permissions To execute command with the temporary environment and per-... (2 Replies)
Discussion started by: Tornado
2 Replies

9. Shell Programming and Scripting

Breaking strings into Substrings

I'm only new to shell programming and have been given a task to do a program in .sh, however I've come to a point where I'm not sure what to do. This is my code so far: # process all arguments (i.e. loop while $1 is present) while ; do # echo "Arg is $1" case $1 in -h*|-H*) echo "help... (4 Replies)
Discussion started by: switch
4 Replies

10. UNIX for Dummies Questions & Answers

extracting return of ls -l into variables

If I do "ls -l filename" in a script, it should return something like this: -rw-r--r-- 1 user group 5945 Feb 28 14:24 filename How do I put each of the above strings into a different variable? eg Permissions, username, groupname, date (7 Replies)
Discussion started by: Sniper Pixie
7 Replies

Featured Tech Videos