Как обрезать строку до последней точки
Есть переменная:
var=bla.bla.bla.com
Как обрезать строку в переменной что бы получилось
com - то есть в независимости от слов и количества точек - обрезать по последней точке
var=bla.com - com
var=bla.co - co
var=bla.bla.org - org
Набор слов (по сути это доменные имена) может быть разным - привязываться к определенным значениям нельзя.
Пробовал:
var=bla.bla.bla.com
echo ${var#*.}
bla.bla.com
Ответы (2 шт):
Автор решения: megorit
→ Ссылка
Bash:
sed -E 's|.*\.([^\.]*)$|\1|g'
Example:
echo qwe.rty.uio.123.456 | sed -E 's|.*\.([^\.]*)$|\1|g'
Автор решения: Stanislav Volodarskiy
→ Ссылка
Вы были в одном шаге от правильного решения.
${var#Pattern} удаляет самую короткую подстроку отвечающую образцу.
${var##Pattern} удаляет самую длинную подстроку отвечающую образцу.
$ var=bla.bla.bla.com $ echo ${var#*.} bla.bla.com $ echo ${var##*.} com