Sponsored Content
Full Discussion: ksh insert element in array
Top Forums Shell Programming and Scripting ksh insert element in array Post 302628389 by rbatte1 on Monday 23rd of April 2012 11:40:00 AM
Old 04-23-2012
You may have to count your way along the array with two pointers. A source address and a target address for a replacement array. The source address gets incremented each time through a loop to copy an element from one to the other, but within the loop there would be an extra increment to the target address and an insert of the zero in the position you want. Something like this may assist:-

Code:
#!/bin/ksh
set -a source_array
set -a target_array

for i in 1 2 3 4 5 6 7 8 9 10 11 12
do                                  # Just loading something into the source.
   source_array[$i]="a${i}a${i}"    # You should already have your data loaded.
done

src_addr=1 ; trg_addr=1

while [ $src_addr -le ${#source_array[*]} ]
do
   target_array[$trg_addr]="${source_array[$src_addr]}"
   echo "Setting target array element $trg_addr from source array element $src_addr value ${source_array[$src_addr]}"
   ((src_addr=$src_addr+1))
   ((trg_addr=$trg_addr+1))

   if [ $trg_addr = 6 ]              # For the required insert
   then
      target_array[$trg_addr]=0    # Set value
      echo "Setting target array element $trg_addr as zero."
      ((trg_addr=$trg_addr+1))   # ... and move pointer along one
   fi
done


I hope that this helps. It may well not be the most efficient way, but it depends how big an array you have and how many times you will run this.




Robin
Liverpool/Blackburn
UK
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Adding array element in KSH

All, I would like to add the first 10 elements of an array. Here is how I am doing it now (only included first few add ops): #!/usr/bin/ksh ###Grab the array values out of a file### TOTAL=`awk '/time/' /tmp/file.out | awk '{print $4}'` set -A times $TOTAL SUM=$((${times} + times... (3 Replies)
Discussion started by: Shoeless_Mike
3 Replies

2. Shell Programming and Scripting

Shift array element

I want to delete and 0th element of array in shell scrpit and also shift all others to one level up. (2 Replies)
Discussion started by: darshakraut
2 Replies

3. Shell Programming and Scripting

remove an element from array

I need to remove an element from the below array variable TABLENAME. #!/bin/ksh set -A TABLENAME "mirf roxar keke mirs" echo "the array is ${TABLENAME}" If i need to remove say keke and have the final TABLENAME as below, how this could be achieved. Pls throw some light. echo "Modified... (3 Replies)
Discussion started by: michaelrozar17
3 Replies

4. Shell Programming and Scripting

Problem to initialize ksh array when first element includes hyphen

Hi I'm trying to create an array with variable including hyphen but ksh refuses the first element set -A allArgs set +A allArgs ${allArgs} -all set +A allArgs ${allArgs} -date set +A allArgs ${allArgs} test ./test.ksh: -all: bad option(s) It happens only when first element is like... (4 Replies)
Discussion started by: gdan2000
4 Replies

5. Emergency UNIX and Linux Support

Assigning zero to element of ksh array.

set -A matched #find referenced files. for i in ${file_names_html} do counter_j=0 for j in ${file_names_minus_index} do match=`cat $i | grep... (1 Reply)
Discussion started by: robin_simple
1 Replies

6. Shell Programming and Scripting

Not able to call an element from an array in ksh

Hi, I have: # Initialize variables #!/usr/bin/ksh FILENM=$1 INDEX=0 # read filename echo "You are working with the Config file: $FILENM" while read line do echo $line data=$line ((INDEX=INDEX+1)) done <"$FILENM" (3 Replies)
Discussion started by: Marc G
3 Replies

7. Shell Programming and Scripting

How to insert an array element within regex?

Hello to all, I'm trying to separate the string "str" using a regex within match function. The substrings that I want to separate, begin with 22, 23, 24 or 25 and followed by 12 or 14 characters. And I want to replace 22 with MJS, 23 with UYT, 24 with WER and 25 with PIL. For this string... (4 Replies)
Discussion started by: Ophiuchus
4 Replies

8. Shell Programming and Scripting

File names as array element in ksh

Hi, I have an ksh array(ARR). the elements to the array are file names. i need to go to each file in the array and manipulate the records. for name in ${files}; do ---this loop is for all the file names in the array for i in $(wc -l < $name); do --this loop is for all the records in... (20 Replies)
Discussion started by: usrrenny
20 Replies

9. UNIX for Advanced & Expert Users

Array Element

This question is for someone that's more familiar with Array Element. I need to know if the maximum array element that can be assigned is 1024 and if its so, Is there a workaround solution when the counter exceeded 1024? param_array="$param_nam" counter=$counter+1 #to avoid space... (3 Replies)
Discussion started by: cumeh1624
3 Replies

10. Shell Programming and Scripting

How to insert a CSV within xml element tag using Python?

Hi Team, I have a CSV file which I have to read through and needs to insert the content within an XML file using Python ONLY ( as most of the code base we have in python only). I managed to find the first part, missing how to insert to XML under "specific" tags. cat input.csv... (0 Replies)
Discussion started by: panyam
0 Replies
SEEKABLEITERATOR(3)							 1						       SEEKABLEITERATOR(3)

The SeekableIterator interface

INTRODUCTION
The Seekable iterator. INTERFACE SYNOPSIS
SeekableIterator SeekableIteratorextends Iterator Methods o abstractpublic void SeekableIterator::seek (int $position) Inherited methods o abstractpublic mixed Iterator::current (void ) o abstractpublic scalar Iterator::key (void ) o abstractpublic void Iterator::next (void ) o abstractpublic void Iterator::rewind (void ) o abstractpublic boolean Iterator::valid (void ) Example #1 Basic usage This example demonstrates creating a custom SeekableIterator, seeking to a position and handling an invalid position. <?php class MySeekableIterator implements SeekableIterator { private $position; private $array = array( "first element", "second element", "third element", "fourth element" ); /* Method required for SeekableIterator interface */ public function seek($position) { if (!isset($this->array[$position])) { throw new OutOfBoundsException("invalid seek position ($position)"); } $this->position = $position; } /* Methods required for Iterator interface */ public function rewind() { $this->position = 0; } public function current() { return $this->array[$this->position]; } public function key() { return $this->position; } public function next() { ++$this->position; } public function valid() { return isset($this->array[$this->position]); } } try { $it = new MySeekableIterator; echo $it->current(), " "; $it->seek(2); echo $it->current(), " "; $it->seek(1); echo $it->current(), " "; $it->seek(10); } catch (OutOfBoundsException $e) { echo $e->getMessage(); } ?> The above example will output something similar to: first element third element second element invalid seek position(10) PHP Documentation Group SEEKABLEITERATOR(3)
All times are GMT -4. The time now is 06:44 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy