[PLUG] (no subject) rev3

russell-evans at qwest.net russell-evans at qwest.net
Sun Oct 19 12:05:02 UTC 2003


This should correct the creation of the column arrays.

I generated a test file with 
let x=0 ; while [ $x -lt 100 ] ; do echo $x $x ; let x++; done > result.txt 

Thank you
Russell

#!/bin/sh

### VARIABLES ###
# File that contains two columns of data for parsing
PATH=$HOME
INPUT_FILE=$PATH/result.txt

### VARIABLES - DO NOT EDIT ###
# declare array variables
declare -a RESULTS
declare -a COL1
declare -a COL2

### FUNCTIONS ####i
CREATE_ARRAY () { # Create array from data in INPUT_FILE
 # INPUTS: INPUT_FILE file
 # OUTPUT: array RESULTS
 #	   variable COUNT
 if [ -r $INPUT_FILE ] ; then
   RESULTS=(`< $INPUT_FILE`)
 else
   exit 1
 fi
 # Number of elements in RESULTS array
 COUNT=${#RESULTS[@]}
 if [ $COUNT = 0 ] ; then
   echo "No data in file"
   exit 1
 fi
}

CREATE_COL_ARRAYS () { # create two arrays from RESULTS  
 # INPUTS: COUNT variable, count of fields in array RESULTS
 # OUTPUT: array COL1 
 #	   array COL2	      
 let x=0
 let y=0
 let z=0
 while [ $x -lt $COUNT ]  ; do
   let z=$y+1
   # Create array of first column data
   COL1[$x]=${RESULTS[$y]}
   # Create array of second column data
   COL2[$x]=${RESULTS[$z]}
   let y=$y+2
   let x++
 done
} ### END CREATE_COL_ARRAYS

PROCESS_COL1 () { # Do something to COL1 array
 # INPUTS: COL1 array
 #	   COUNT variable, count of elements in RESULTS array
 # OUTPUT:
 let HALFCOUNT=($COUNT / 2)
 let x=0
 while [ $x -lt $HALFCOUNT ] ; do
   echo -n  COL1[$x]=${COL1[$x]},
   let x++
 done	
 echo		       
} ### END PROCESS_COL1

PROCESS_COL2 () { # Do something to COL2 array
 # INPUTS: COL2 array
 #	   COUNT variable, count of elements in RESULTS array
 # OUTPUT:
 let HALFCOUNT=($COUNT / 2)
 let x=0
 while [ $x -lt $HALFCOUNT ] ; do
   echo -n  COL2[$x]=${COL2[$x]},
   let x++
 done			  
 echo
} ### END PROCESS_COL2

### MAIN ###
# Create array from data in INPUT_FILE
CREATE_ARRAY
# Call CREATE_COL_ARRAYS to create column arrays
CREATE_COL_ARRAYS || exit 1
# Do something with COL1 array
PROCESS_COL1 || exit 1
# Do something with COL2 array
PROCESS_COL2 || exit 1
exit 0






On Sun, 19 Oct 2003 00:50:35 -0700, Felix Lee said:

>  >    COL2[$x]=${RESULTS[$y]}
>  >    let x=$x+2
>  
>  you're only assigning every other element of COL1 and COL2.
>  COL1[0] has a value, COL1[1] is null, COL1[2] has a value, etc.





More information about the PLUG mailing list