Вы можете добавить .*
в конце шаблона, чтобы использовать все оставшиеся строки. Кроме того, рекомендуется использовать разделители, отличные от /
, если в шаблоне указано /
.
Используйте
echo "this/cluster/data/mydata.data?x-username=me" | sed 's,.*data/\(.*\)?x.*,\1,'
См. онлайн демо
Шаблон будет соответствовать
.*
- любые 0+ символов
data/
- буквальная подстановка
\(.*\)
- захватить в группу 1 (\1
) любые 0+ символов
?x
- совпадение ?x
буквенная подстрока
.*
- любые 0+ символов для остальной части ввода.