Вы можете использовать расширение параметра оболочки для решения указанного вами теста. Вот пример:
# var=my-name-is-yes-111111.maybe.text.here?-34.34.34
# echo ${var%%\-[0-9]*}
my-name-is-yes
Если вам нужна эта переменная, вы можете назначить расширение вместо этого, то есть
var=my-name-is-yes-111111.maybe.text.here?-34.34.34
var2=${var%%\-[0-9]*}
echo $var2
my-name-is-yes
Вы даже можете перезаписать свое первое значение значением расширения,
var=my-name-is-yes-111111.maybe.text.here?-34.34.34
var=${var%%\-[0-9]*}
echo $var
my-name-is-yes
Операторы расширения параметров %
и %%
означают «удалить совпадающее значение с правой стороны переменной», тогда как %%
означает удаление максимального совпадения с правой стороны.
Существуют также операторы расширения параметров #
и ##
, которые выполняют аналогичную функцию, но "удаляют совпадающие значения с левой стороны от значения переменной.
IHTH