LINUX.ORG.RU

#!/bin/sh

TEST()
{
        echo $1 | sed 's/http:\/\//@HTTP@/g' | sed 's/\/.*$//g' | sed 's/@HTTP@/http:\/\//g'
}

TEST "http://linux.org.ru/add.jsp?";
TEST "http://xxxxxxx.xx/wdadwdwfwsf.sfdsdf";

Если может встретиться другой протокол, можно заменять не http://, а ://

echo $1 | sed 's/:\/\//@PROTO@/g' | sed 's/\/.*$//g' | sed 's/@PROTO@/:\/\//g'

Оба варианта не совсем универсальны, но в простых случаях работают.

rymis ★★
()

sed -r "s|(http://[a-z.]+/).*|\1|"

ananas ★★★★★
()
Ответ на: комментарий от anonymous

Вот на awk:

/^[a-zA-Z]*:\/\// { proto=substr($0, 0, match($0, "://")-1); host=substr($0, match($0, "://")+3);

if (match(host, "/")>0) { path=substr(host, match(host, "/")); host=substr(host, 0, match(host, "/")-1); } else { path = ""; }

printf "%s://%s\n", proto, host; }

только вся URL разбирается :-)

rymis ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.