Isso obtém o resultado que você mostra no seu exemplo.
grep '^[^/]*/[^/]*/[^/]*/$' findmydomain.txt >new
Estes não são apropriadamente "nomes de domínio", eles são URLs possivelmente com um ou mais subdomínios. Por exemplo, em www.google.com
, o nome do domínio é google.com
e www
é apenas um nome de nó individual. No caso geral, resolver o TLD fora de um nome de host é um problema muito mais complexo que requer conhecimento de cada TLD individual.
A barra final é opcional, estritamente falando; A resposta de @ terdon usa um regex mais complexo que resolve isso. Como uma correção rápida e suja, você poderia adicionar um *
após a última barra aqui (que entretanto também corresponderia a http://example.com///
com uma quantidade arbitrária de barras finais redundantes). O regex procura por linhas com exatamente três barras, com caracteres opcionais não-barra antes e entre eles.