BASH. Имя домена из URL.

При написании одной штуки, понадобилось обрабатывать большое количество разных URL выдёргивая из них только имя домена без www, протокола, логина, пароля и полного пути.

Для решения задачки можно воспользоваться вот таким вот скриптом:

#!/usr/bin/env bash

url="$1";

url="${url#https://}"; 
url="${url#http://}";
url="${url#scp://}";
url="${url#ftp://}";
url="${url#sftp://}";

url="${url#*:*@}";
url="${url#*@}";
 
url="${url%%/*}";
 
echo "$url";

exit 0;

В процессе выполнения скрипта, сначала отбрасывается протокол, затем при наличии логина и пароля происходит избавление от них, и завершается всё удалением полного пути из URL. Использовать можно, например так:

# while read line; do ./geturl.sh $line; done < ../all.url.list

Либо как отдельную функцию в рамках другого большого скрипта.

@SysadminNotes | https://sysadmin.pm

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *