ksh scripting- array format


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting ksh scripting- array format
# 1  
Old 09-08-2011
ksh scripting- array format

Hi Everyone,

I have a ksh script that queries a database. The query output looks like this:
Code:
$queryResult = [name1 age1 name2 age2 name3 age3]
 
echo ${queryResult[0]} = name1
echo ${queryResult[1]} = age1
echo ${queryResult[2]} = name2
echo ${queryResult[3]} = age2
...

I need to insert those values into a new array that would look like this:

Code:
$newArray = [name1age1 name2age2 name3age3]
 
echo ${newArray[0]} = name1age1
echo ${newArray[1]} = name2age2
echo ${newArray[2]} = name3age3

Basically, I am trying to concatenate each person's name and age into one postion within $newArray. If anyone can provide me with a solution to this, especially using a function, I would be most appreciative. Thanks.

Last edited by Franklin52; 09-09-2011 at 03:23 AM.. Reason: Please use code tags for code and data samples, thank you
# 2  
Old 09-08-2011
This function should do it:
Code:
concat_result() {
   P=1
   while [ $P -lt ${#queryResult[@]} ]
   do
       newArray[P/2]=${queryResult[P-1]}${queryResult[P]}
       let P=P+2
   done
}


And here it is being used in your test case:
Code:
set -A queryResult name1 age1 name2 age2 name3 age3 
 
echo ${queryResult[0]} = name1
echo ${queryResult[1]} = age1
echo ${queryResult[2]} = name2
echo ${queryResult[3]} = age2
 
concat_result

echo ${newArray[0]} = name1age1
echo ${newArray[1]} = name2age2
echo ${newArray[2]} = name3age3

This User Gave Thanks to Chubler_XL For This Post:
# 3  
Old 09-09-2011
Another way of doing it:
Code:
#!/bin/ksh93

concat_result() {
   typeset -n array=$1

   for (( P=1; P < ${#array[@]}; P+=2 ))
   do
       newarray[P/2]="${array[P-1]}${array[P]}"
   done

   echo "${newarray[*]}"
}


queryResult=(name1 age1 name2 age2 name3 age3)

newArray=($(concat_result "queryResult"))

echo ${newArray[*]}

This User Gave Thanks to fpmurphy For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Assigning * as value in a ksh array

I want to extract each and single character from a password string and put it in an array. I tried this : set -A password "echo $passwd | awk '{for (i=1; i<=length($1); i++) printf "%s ",substr($1,i,1)}'` It's working as long that the password string doesn't contains any * I tried a few... (5 Replies)
Discussion started by: ce9888
5 Replies

2. Shell Programming and Scripting

[Solved] KSH: Array/If Help

RedHat 5 KSH I am creating an array, and then using case to go through and count for specific words. Then the count gets stored as an expression. string='ftp rcp rsh telnet ftp ftp' set -A myarray $string FTPCOUNT="0" for command in ${myarray} do case $command in ftp) FTPCOUNT=`expr... (2 Replies)
Discussion started by: nitrobass24
2 Replies

3. UNIX and Linux Applications

Array in Ksh

Hi Guys, My code is something like this set -A A1 1 7 13 19 set -A A2 2 8 14 20 set -A A3 3 9 15 21 echo "Enter a number" read number for i in 0 2 3 4 do if }" ] then do something elif }" ] then do something elif }" ] then do something (4 Replies)
Discussion started by: jeanzibbin
4 Replies

4. Shell Programming and Scripting

Array in ksh with if-else

Hi All, My Requirement is as follows: 1. User will input Source Sytem Code as input. 2. I have source system codes as 11, 34, 56, 99, 45 etc. OS Version: SunOS 5.8 Generic_117350-62 sun4u sparc SUNW,Sun-Fire-V890 My code is like... echo 'Source System Code: \c' read varSSCode... (3 Replies)
Discussion started by: saps19
3 Replies

5. UNIX for Dummies Questions & Answers

Need help with KSH Array assignment

The following command is only intermittently successful, depends on the data I give it: set -A ImageShifts_sorted `awk '/START_SECTION IMAGE_DEFINITION/ {getline;getline;getline;getline; print $2"-"$3}' temp.ASCII | sort -u` My Error: set: -1: unknown option Finally, If I run that... (3 Replies)
Discussion started by: nerdcurious
3 Replies

6. UNIX for Advanced & Expert Users

Array copy in ksh

Hi all, Following code in ksh is giving error: fileLimit=5 func(){ dir=&quot;$1&quot; format=&quot;$2&quot; array=&quot;$3&quot; i=0 ls -lrt $format | tail -${fileLimit} | while read f_det; do files=&quot;${f_det},&quot; ((i+=1)) done eval $(echo set -A $array '&quot;${files}&quot;') } func &quot;.&quot; &quot;*.pl&quot; &quot;a&quot; echo... (10 Replies)
Discussion started by: PRKS
10 Replies

7. Shell Programming and Scripting

Ksh array solution.

I was wondering if ksh supported arrays. I have a script that may work with several hosts. I'd like a means of knowing how many hosts I'm working with and an easy way to access them (as variables) in a loop. I'm assuming there's some kind of foreach in shell scripting. (1 Reply)
Discussion started by: mrwatkin
1 Replies

8. Shell Programming and Scripting

using array in ksh

hi all, need help with putting names in an array, i have a few servers which i look up by doing a 'find . -name "*.pid' and the format of the output is like following : ./servername/myserver.pid i was wondering how can i iterate through and store each name in one array my code is... (1 Reply)
Discussion started by: cesarNZ
1 Replies

9. Shell Programming and Scripting

Tokenising into array (KSH)

Greetings all, I've been getting a little frustrated over my scripts as I'm not too experienced with powerful commands such as awk and sed. Hope to find some guidance here. I need to extract the names of all directories within a specified directory, grab their names and then place each name... (5 Replies)
Discussion started by: rockysfr
5 Replies

10. UNIX for Dummies Questions & Answers

Simple Array in Ksh Scripting

Ksh Scripting Can some one give me a simple example of array operations using ksh. For Ex: week_array = {Sunday Monday Tuesday Wednesday Thursday Friday Saturday} I want to assign and retrieve and print them along with their index. I am looking for the o/p like: 0 Sunday 1 Monday ... (2 Replies)
Discussion started by: ravikirankethe
2 Replies
Login or Register to Ask a Question