У меня есть имена каталогов, которые включают номера года. Я хочу разделить их на переменные, которые находятся до номера года:
Введите:
Holidays.uS.2019.bla.bla
Holidays.ca.old.2017.bla.bla
Holidays.2015.bla.bla.bla
Holidays.1.2.3.4.at.old.1999.bla.bla.bla.bla
Год не всегда один и тот же, но он всегда состоит из 4 цифр.
Мне всегда нужно все до года.
Для входа:
Holidays.ca.old.2017.bla.bla
Выход:
Holidays.ca.old
Попытка
set name Holidays.ca.old.2017.bla.bla
set numbers [regexp -all -inline {[0-9]+} $name]
Выходные данные из моего кода - номер года, а иногда и другие неправильные числа.
Я использую это в tcl, и он отлично работает для меня:
set name_split [regsub {\.[0-9]{4}\y.*} $name ""]
Мне все еще нужно это для скрипта bash, как его использовать?
Это действительно не работает в bash:
name_split=$(echo $name | {\.[0-9]{4}\y.*}