LINUX.ORG.RU

Ответ на: комментарий от Xenius

Блин, я даже и не смотрел в эту сторону. Пробовал awk, но там громоздко выходит... Спасибо! То что нужно

lasthappy ()

sed -r вроде как не умеет в задание жадности поиска (greediness), но perl -pe вполне справляется с этим:

$ perl -pe 's/(.*?\/){3}//' <<< 'http://192.168.40.200/cgi-bin/snapshot.cgi'
cgi-bin/snapshot.cgi
kalterfive ★★ ()
Последнее исправление: kalterfive (всего исправлений: 1)
Ответ на: комментарий от kalterfive

sed -r вроде как не умеет в задание жадности поиска (greediness)

В большинстве случаев это решается заменой точки на «не-разделитель»:

$ echo "http://192.168.40.200/cgi-bin/snapshot.cgi" | sed -n 's@\([^/]*/\)\{3\}@@p'
cgi-bin/snapshot.cgi


А вообще, для таких простых задач даже sed не нужен, достаточно средств самого bash'а:
$ A="http://192.168.40.200/cgi-bin/snapshot.cgi" ; echo "${A#*://*/}"
cgi-bin/snapshot.cgi

Kroz ★★★★★ ()
echo 'http://192.168.40.200/cgi-bin/snapshot.cgi' | sed 's!^\([^/]*/\)\{3\}!!'
evilface ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.