/ / URL katalogu podstawowego hosta parsowania w bash - bash

Katalog główny hosta parsowania w bash-bash

Mam problem z analizowaniem adresów URL w bashu. Mają one następujący format:

http(s)://some.host.com/some/web/directory/file

Chcę wyodrębnić tylko protokół i ciąg hosta, aby wynik końcowy był:

http(s)://some.host.com/

Jak to osiągnąć w bash?

Odpowiedzi:

2 dla odpowiedzi № 1

Możesz użyć grep:

grep -o "https?://[^/]+/"
grep -Eo "https?://[^/]+/"

Dane wejściowe mogą pochodzić z potoku lub pliku.

A jeśli twoja część protokołu jest dosłownie http(s), możesz mieć:

grep -o "http(s)://[^/]+/"

0 dla odpowiedzi nr 2

Możesz spróbować tego polecenia GNU sed aslo,

$ echo "http(s)://some.host.com/some/web/directory/file" | sed -r "s~^([^/]*//[^/]*/).*~1~g"
http(s)://some.host.com/