[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