Beste Johan van Dijk,
Helaas gaven ook deze codes niet het gewenste eindresultaat. Na lang in de boeken turen vond ik deze oplossing:
# alle bestandsnamen in de huidige directory worden opgeslagen in de array allebestanden[]
allebestanden=(*)
allebestanden=("${allebestanden[@]##*/}")
# read zoekwoord
printf "\n\nTyp een zoekwoord en bevestig met Enter: "
read zoekwoord
# grep zoekt naar $zoekwoord en slaat de bijbehorende bestandsnaam op in gevondenbestanden[]
n=0
for ((i=0; i<${#allebestanden[@]}; i++)); do
interimbestand=${allebestanden[$i]}
grep -q $zoekwoord $interimbestand
# asl de exitwaarde 0 is dan heeft grep het zoekwoord gevonden
if [ $? = 0 ]; then ${gevondenbestanden[$n]}=$interimbestand; let " n += 1 "; fi
done
#check
for ((i=0; i<${#gevondenbestanden[@]}; i++)); do printf "\n${gevondenbestanden[$i]}"; done
Het lijkt mij nog steeds een beetje omslachtig, maar het werkt en daar gaat het uiteindelijk om. Als er verder geen alternatieven binnenkomen, beschouw ik deze draad als opgelost.
Vr.Gr.
N.L.