Wenn Sie nur den angepassten Text eines regulären Ausdrucks erhalten möchten, würde ich
grep -o 'regex' file
Im Geiste des Codes verwende ich es ändern würde
while read line; do
[[ $line =~ regex ]] || continue
# do somethinw with $line or $BASH_REMATCH, perhaps put it in an array.
done < file
sein
Wenn Sie mehrere Regexes auf der gleichen Linie übereinstimmen möchten, hier ist ein Weg.
while read line; do
# do somethinw with $line
done < <(grep -o 'regex' file)
Ich nehme an, dass Ihre Regex ein vereinfachtes Beispiel dafür sein soll, was Sie wirklich tun. Das ? ist nicht hilfreich und Ihre Zitate entsprechen einer Literal-Zeichenfolge.
Wollen Sie das hinzufügen? am Ende des Musters? – Richard