Это правильно. Регулярные выражения AWK не имеют флагов.
Также нет встроенной поддержки для match
поиска второго или более поздних совпадений.
Только функции gsub
и gensub
имеют это.
Я бы попробовал что-то вроде этого:
gensub(/.*<a href=\"([^\"]+)/, "\1%", "g")
last = split($0, "%", arr)
delete arr[last]
где %
- строка, которую вы можете гарантировать, что она не будет найдена во входных данных.