Visit Our UNIX and Linux User Community

Need help with KSH Array assignment

Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Need help with KSH Array assignment
# 1  
Old 06-03-2011
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 command without the array assignment:
{getline;getline;getline;getline; print $2"-"$3}' temp.ASCII | sort -u

I see what I expect based on my temp.ASCII file:

Any advice for me would be greatly appreciated.
# 2  
Old 06-03-2011
It's taking negative numbers to mean parameters. Try giving it -- to tell it there's no further parameters.

set -A arr -- ...

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 06-07-2011
I got another question for you good sir. I am having trouble with this line:

set -A combo -- $(for x in ${ImageIDs[*]} ;
nawk -v s=$x 'if($2 == s) getline ; getline if ($1 == "IMAGE_SIZE") print s":"$2"-"$3 ' temp.ASCII ; 

I see this output for every item in the for index:
nawk: bailing out at source line 1
nawk: syntax error at source line 1
 context is
>>> if <<< ($2 == s) getline ; getline if ($1 == "IMAGE_SIZE") print s"
nawk: bailing out at source line 1
nawk: syntax error at source line 1
 context is
>>> if <<< ($2 == s) getline ; getline if ($1 == "IMAGE_SIZE") print s"
nawk: bailing out at source line 1
nawk: syntax error at source line 1
 context is
>>> if <<< ($2 == s) getline ; getline if ($1 == "IMAGE_SIZE") print s"

This array assignment loop worked in a newer ksh, but on the old solaris (ksh 88 i believe) it fails. I'm at a loss right now. Any ideas?
# 4  
Old 06-08-2011
That doesn't look like correct syntax for awk/nawk. Nothing's inside a code block. Try putting it inside BEGIN { ... }
This User Gave Thanks to Corona688 For This Post:

Previous Thread | Next Thread
Test Your Knowledge in Computers #724
Difficulty: Medium
The Plan 9 operating system was the first machine to achieve a Master rating in chess.
True or False?

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. Shell Programming and Scripting

AWK Variable assignment issue Ksh script

Hi There, I am writing a ksh script which assigns variable values from file "A" and passes that variables to file "B". While passing the parameters an additional "$" sign is being assigned to awk -v option. Could any one help me with this please. #!/bin/ksh head -1... (3 Replies)
Discussion started by: Jeevanm
3 Replies

6. Shell Programming and Scripting

Array scan before assignment

awk 'BEGIN { count=1;SITEARR=0;} { namespace=$5; if ( namescpace in SITEARR) { print "Found ",namespace; } else { SITEARR=namespace; } } } END { for ( k in SITEARR ) { print SITEARR } }' $ev_file This AWK code is still giving me duplicate entries in SITEARR, whereas I have tried to... (3 Replies)
Discussion started by: busyboy
3 Replies

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

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

9. 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/ 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

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

Featured Tech Videos