Конструкция:
if [[ "$text" =~ regexp ]]
echo "$BASH_REMATCH"
fi
находит только первое совпадение регулярного выражения. Как найти все? Т.е. как указать модификатор g(global), для поиска по всей строке?
Или вот другой пример, есть строка вида:
Id=1
Name=image
Url=image.png
Необходимо получить параметр Name. Пишу следующий код:
name=`[[ "$text" =~ ^Name\=(.*)$ ]] && echo "${BASH_REMATCH[1]}"`
Как в этом примере указать модификатор
"m", что бы символы
^ и
$ означали начало и конец
строки, а не всего
текста.
P.S. Конечно же, на shell существует масса других способов решить эти проблемы, но мне нужно понять именно как указывать
модификаторы в
регулярных выражениях.