Em três etapas:
- Remova tudo até o
:// no URL.
- Remova tudo após o primeiro
/ ou : na string restante. Isso agora deixa você com apenas o nome do host do URL original.
- Remover bits que você não deseja, por exemplo
www. desde o início do nome do host.
sed -e 's@^.*://@@' -e 's/[/:].*$//' -e 's/^www\.//'
A execução disso nos seus URLs de exemplo resultará em
example.com
home.example.com
Usando awk :
awk -F'[/:]+' '{ sub("^www\.", "", $2); print $2 }'
Isso trata as linhas de entrada como registros de campos delimitados por qualquer número de : ou / consecutivos. Isso significa que o nome do host estará disponível no segundo campo em cada linha.
O sub() simplesmente removerá o bit do nome do host no qual não estamos interessados (aqui, www. no início do nome do host).