...noch keine Antwort...?
Dann werde ich mal mitteilen, was ich bisher gemacht habe.
Der Vollständigkeit wegen (und um die Sache komplizierter zu machen), muss ich anmerken, dass im fertigen Script vor und nach der Farbe jeweils ein Wort gesetzt werden soll. In diesem Fall ein "sonstiges" und ein "bla". Vielleicht mache ich hier einen Fehler?
special=( 'Am 30.8. haben wir ein rotes Auto im Angebot' 'haben wir ein' 'Auto im Angebot' 'sonstiges1' 'bla1' 'Um den 1.9. haben wir ein gelbes Auto im Angebot. Es kann sprechen.' 'haben wir ein' 'Auto im Angebot' 'sonstiges2' 'bla2' )
for (( i=0; i<${#special[*]}; i=i+5 )); do
farbe= ${special[i]} - | grep -o "${special[i+1]}"'['"'"'"][^"'"'"']"'"${special[i+2]}" - | sed -e s/"${special[i+2]}"//g -e s/\"//g -e s/"${special[i+2]}"/"${special[i+4]}"/g | sort -u -)
ergebnis=$ergebnis ", "$farbe
done
echo $ergebnis
Ich vermute jedoh, der Teil mit dem grep ist falsch. Es ist aber schwierig darüber Infos zu finden. Und ich bin eigentlich Krankenpfleger.