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
ddi_device_copy(9F)					   Kernel Functions for Drivers 				       ddi_device_copy(9F)

NAME
ddi_device_copy - copy data from one device register to another device register SYNOPSIS
#include <sys/ddi.h> #include <sys/sunddi.h> int ddi_device_copy(ddi_acc_handle_t src_handle, caddr_t src_addr, ssize_t src_advcnt, ddi_acc_handle_t dest_handle, caddr_t dest_addr, ssize_t dest_advcnt, size_t bytecount, uint_t dev_datasz); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). PARAMETERS
src_handle The data access handle of the source device. src_addr Base data source address. src_advcnt Number of dev_datasz units to advance on every access. dest_handle The data access handle of the destination device. dest_addr Base data destination address. dest_advcnt Number of dev_datasz units to advance on every access. bytecount Number of bytes to transfer. dev_datasz The size of each data word. Possible values are defined as: "15">DDI_DATA_SZ01_ACC 1 byte data size DDI_DATA_SZ02_ACC 2 bytes data size DDI_DATA_SZ04_ACC 4 bytes data size DDI_DATA_SZ08_ACC 8 bytes data size DESCRIPTION
ddi_device_copy() copies bytecount bytes from the source address, src_addr, to the destination address, dest_addr. The attributes encoded in the access handles, src_handle and dest_handle, govern how data is actually copied from the source to the destination. Only matching data sizes between the source and destination are supported. Data will automatically be translated to maintain a consistent view between the source and the destination. The translation may involve byte-swapping if the source and the destination devices have incompatible endian characteristics. The src_advcnt and dest_advcnt arguments specifies the number of dev_datasz units to advance with each access to the device addresses. A value of 0 will use the same source and destination device address on every access. A positive value increments the corresponding device address by certain number of data size units in the next access. On the other hand, a negative value decrements the device address. The dev_datasz argument determines the size of the data word on each access. The data size must be the same between the source and destina- tion. RETURN VALUES
ddi_device_copy() returns: DDI_SUCCESS Successfully transferred the data. DDI_FAILURE The byte count is not a multiple dev_datasz. CONTEXT
ddi_device_copy() can be called from user, kernel, or interrupt context. SEE ALSO
ddi_regs_map_free(9F), ddi_regs_map_setup(9F) Writing Device Drivers SunOS 5.10 15 Nov 1996 ddi_device_copy(9F)
All times are GMT -4. The time now is 10:33 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy