Есть текстовая строка (коммит сообщение с номерами задач):
текст #123 текст
#23456
текст #3456
текст ....
Необходимо для каждой задачи - вхождения "решетка-цифры" (#123, #23456, #3456) выполнить одинаковый код по замене, например выполнить локальную функцию replace_digits $ISSUE
При одном вхождении можно получить позицию первого вхождения NUM_POS=$(expr index "$MSG_SRC" "#") и дальше выделить цифры в $ISSUE.
Но как бы посоветовали оптимально перебрать все вхождения?
Т.к. expr index работает с первым вхождением - пока планирую обрезать исходную строку по мере выделения номеров, и повторять пока не закончатся решетки.
PS
И может подскажете красивый вариант выделению цифр?
Попробовал было после обрезки строки от ее начала до первого номера задачи и потом:
IFS=" "
set $LINE
ISSUE=$1
Но столкнулся с тем, что после номера задачи может идти не только пробел, но и запятая и перевод строки и т.п.
Есть много советов как выделить подстроку (в т.ч. только цифры) "до определенного символа", но пока не нашел от начала и "до не-цифры"...