Я понял ответ до того, как отправил вопрос, но поскольку я уже напечатал его, я решил опубликовать его, если это кому-то поможет.
Главное, что было необходимо, это добавить флаг -r
(может быть -E
в некоторых версиях), чтобы сказать sed
поддерживать расширенные регулярные выражения, что необходимо для использования синтаксиса класса символов / диапазона и оператора плюс [a-z]+
. Это так же, как и в случае с grep
(по какой-то причине я думал, что sed
по умолчанию поддерживает расширенные регулярные выражения, но это неверно).
Вот рабочий пример:
echo "subdomainxyz.example.com" | sed -r 's/[a-z]+\.example\.com/example.com/'
EDIT (кредит steeldriver):
Простое экранирование знака плюс работает без необходимости использования -r. Пример:
echo "subdomainxyz.example.com" | sed 's/[a-z]\+\.example\.com/example.com/'