extracting substrings from variables


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting extracting substrings from variables
# 15  
Old 05-27-2011
Thanks for the idea Gary Smilie

However the interesting part of "awk" is that the number of strings in the variable changes from line to line, thus the $NF token in awk is really useful there

---------- Post updated at 06:21 PM ---------- Previous update was at 04:35 PM ----------

@Gary : scratch my last post

My remark was dumb, i can use a while loop to reach the end of the array so your post is dead accurate.

I have been able to change the "PATH" variable to something like this:

path1|path2|path3

But i come across this error:

./test.sh: line 40: set: -A: invalid option
set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]

Smilie
# 16  
Old 05-27-2011
check the man page

My example works with ksh93 on solaris. You will have to do some searching to see if you can do the equivalent on your system and shell.

P.S. For looping, the syntax to get the number of entries in the array is:
Code:
${#arrayname[*]}

which would allow for dynamically looping through the array. Modified example:
Code:
#!/usr/dt/bin/dtksh

# Set a string variable.
pathlist="/var/x/www|/usr/x/share/doc|/etc/x/logs"
integer ctr=0
integer nbr_elements

# Set the Input Field Separator.
IFS='|'

# Create an array, with elements automatically parsed by the IFS string.
set -A parsed_pathlist_array $pathlist
nbr_elements=${#parsed_pathlist_array[*]}

# Prove it works.  Loop through the array.
while (( $ctr < $nbr_elements ))
do
  print "array element $ctr: ${parsed_pathlist_array[$ctr]}"
  ((ctr+=1))
done

exit 0

I'm not a bash guy, but I played around for the fun of it and this works to parse a string:

Code:
#!/bin/bash

# Set a string variable.
pathlist="/var/x/www|/usr/x/share/doc|/etc/x/logs"
ctr=0

# Set the Input Field Separator.
IFS='|'

# Prove it works.  Loop
for element in $pathlist
do
  echo "substring element $ctr: $element"
  ctr=`expr $ctr + 1`
done

exit 0


Last edited by gary_w; 05-27-2011 at 05:18 PM.. Reason: Added bash example
Login or Register to Ask a Question

Previous Thread | Next Thread

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
Login or Register to Ask a Question