Задавая вопрос, как достичь этого с помощью определенного инструмента (awk), вы можете задавать вопрос XY .
Я бы сказал, что вы можете вообще избежать awk и просто обрабатывать все в bash.
$ index="index:index.html:index2.html:index3.html"
$ IFS=:
$ declare a=( $index )
$ printf '%d\n' "${#a[@]}" # here's your field count...
4
$ declare -p a
declare -a a=([0]="index" [1]="index.html" [2]="index2.html" [3]="index3.html")
$ printf '> %s\n' "${a[@]}"
> index
> index.html
> index2.html
> index3.html
Или, если, как вы говорите, вы хотите выполнить другую команду для каждого элемента этого массива, вы можете использовать цикл for для элементов массива:
$ for file in "${a[@]}"; do printf '>> %s\n' "$file"; done
>> index
>> index.html
>> index2.html
>> index3.html