First I should perhaps explain what I want to do...
- I have 'n' amounts of files with 'n' amount of lines. All I know is that the line count will be even.
- The user selects the files that they want. This is saved into an
array called
${selected_sets[@]}
. - The program will print to screen a randomly selected 'odd numbered' line from a randomly selected file.
- Once the line has been printed, I don't want it printed again...
Most of it is fine, but I am having trouble creating arrays based on the contents of ${selected_sets[@]}
... I think I have got my syntax all wrong :)
for i in ${selected_sets[@]}
do
x=1
linecount=$(cat $desired_path/$i | wc -l) #get line count of every set
while [ $x -le $linecount ]
do ${i}[${#${i}[@]}]=$x
x=$(($x+2)) # only insert odd numbers up to max limit of linecount
done
done
The problem is ${i}[${#${i}[@]}]=$x
I know that I can use array[${#array[@]}]=$x
but I don't know how to use a variable name.
Any ideas would be most welcome (I am really stumped)!!!