Добрый день.
Нужно обрезать URL, чтобы получить первую и последнюю часть. Например, из url http://www.teztour.com/book/site/images/button_s.gif необходимо получить:
1. http://www.teztour.com
2. button_s.gif
Поскольку регулярными выражениями я не дружен в принципе, прошу помощи.
>Добрый день.
>Нужно обрезать URL, чтобы получить первую и последнюю часть. Например, из url
>http://www.teztour.com/book/site/images/button_s.gif необходимо получить:
>1. http://www.teztour.comcoder@ubuntu ~ $ echo 'http://www.teztour.com/book/site/images/button_s.gif' | sed 's|^\(http://[^/]\+\)/.*|\1|'
http://www.teztour.com>2. button_s.gif
>Поскольку регулярными выражениями я не дружен в принципе, прошу помощи.basename 'http://www.teztour.com/book/site/images/button_s.gif'
button_s.gif
Спасибо.
Что я делаю не так?#!/usr/bin/perl
$link = "http://need4soft.ru/engine/classes/tagcloud/tagcloud.swf";
$link =~ s|^\(http://[^/]\+\)/.*|\1|;
print "$link\n";
my $url = "http://need4soft.ru/engine/classes/tagcloud/tagcloud.swf";
if ($url =~ m|(http://[^/]+).*/([^/]+)|) {
print "$1\n";
print "$2\n";
}
>Спасибо.
>Что я делаю не так?Регулярные выражения, которые работают в sed могут не работать в Perl и наоборот. Либо я не увидел, что раздел про Перл, либо вы этого не указали.
coder@ubuntu ~ $ perl -e '$link = "http://need4soft.ru/engine/classes/tagcloud/tagcloud.swf"; $link =~ s|^(http://[^/]+)/.*|\1|; print "$link\n";'
http://need4soft.ru
О, гуру!
>coder@ubuntu ~ $ echo 'http://www.teztour.com/book/site/images/button_s.gif' | sed 's|^\(http://[^/]\+\)/.*|\1|'
>http://www.teztour.comээ...
fx@freebsd71$ echo 'http://www.teztour.com/book/site/images/button_s.gif' | sed 's|^\(http://[^/]\+\)/.*|\1|'
http://www.teztour.com/book/site/images/button_s.gifЧЯДНТ?
В BSD не работает.
>>coder@ubuntu ~ $ echo 'http://www.teztour.com/book/site/images/button_s.gif' | sed 's|^\(http://[^/]\+\)/.*|\1|'
>>http://www.teztour.com
>
>ээ...
>
>fx@freebsd71$ echo 'http://www.teztour.com/book/site/images/button_s.gif' | sed 's|^\(http://[^/]\+\)/.*|\1|'
>http://www.teztour.com/book/site/images/button_s.gif
>
>ЧЯДНТ?Если не ошибаюсь, во FreeBSD нужен ключик -E
P.S. Опять же вылазит несовместимость между sed/awk и прочими утилитками в GNU и BSD. Поэтому либо писать на Перле, либо сразу говорить под какую ОС нужен скрипт.
спс