Итак, я хочу сопоставить только домен из эфира:
http://www.google.com/test/
http://google.com/test/
http://google.net/test/
Вывод должен быть для всех 3: google
У меня этот код работает только для .com
echo "http://www.google.com/test/" | sed -n "s/.*www\.\(.*\)\.com.*$/\1/p"
Output: 'google'
Тогда я подумал, что это будет так же просто, как сказать (com|net), но это не похоже на правду:
echo "http://www.google.com/test/" | sed -n "s/.*www\.\(.*\)\.(com|net).*$/\1/p"
Output: '' (nothing)
Я собирался использовать аналогичный метод, чтобы избавиться от «www», но, похоже, я делаю что-то не так… (разве это не работает с регулярным выражением вне \(\)…)