Я маю деякі проблеми з аналізом URL-адрес у bash. Вони мають такий формат:
http(s)://some.host.com/some/web/directory/file
Я хочу витягти лише протокол і рядок хоста, щоб кінцевий результат:
http(s)://some.host.com/
Як це можна досягти в bash?
Відповіді:
2 для відповіді № 1Можна використовувати grep:
grep -o "https?://[^/]+/"
grep -Eo "https?://[^/]+/"
Вхід може бути з труби або файлу.
І якщо ваша частина протоколу буквально http(s)
, ти можеш мати:
grep -o "http(s)://[^/]+/"
0 для відповіді № 2
Ви можете спробувати цю команду GNU sed,
$ echo "http(s)://some.host.com/some/web/directory/file" | sed -r "s~^([^/]*//[^/]*/).*~1~g"
http(s)://some.host.com/