Para remover tudo após o primeiro solitário (não o dobro) / :
sed -r 's#([^/])/[^/].*##'
A expressão s#([^/])/[^/].*## executará uma substituição usando a expressão regular ([^/])/[^/].* . Isso corresponderá a qualquer caractere que não seja / , seguido por um único / (e outros caracteres no final da linha de entrada).
A substituição substitui a partida pelo personagem na frente do lone / (que, de outra forma, seria substituído).
Testando no arquivo
http://example.com/folder/file.html
http://example.bar.com/folder/file.html
http://example.com:8080/folder/file.html
$ sed -r 's#([^/])/[^/].*##' file
http://example.com
http://example.bar.com
http://example.com:8080
Usando awk :
$ awk -F'/' '{ print $1 "//" $3 }' file
http://example.com
http://example.bar.com
http://example.com:8080
Aqui, eu estou usando / como um delimitador de campo, e então eu estou simplesmente escolhendo o primeiro e o terceiro campo e exibindo-os com a string // intermediária.