Удалить текст после последнего / - PullRequest
1 голос
/ 07 сентября 2011

У меня есть список ссылок, таких как:

http://site1.com/lalala.html
http://site2.com/lalala/

И мне нужно удалить весь текст подряд после последней / Как я могу сделать это с помощью awk или sed?Или, может быть, какой-нибудь Perl или Python скрипт?Спасибо за помощь!

Ответы [ 5 ]

2 голосов
/ 07 сентября 2011

Это может работать:

$ echo http://site1.com/lalala/ | sed -e 's;\(.*/\).*;\1;'
http://site1.com/lalala/
$ echo http://site1.com/lalala/foo.html | sed -e 's;\(.*/\).*;\1;'
http://site1.com/lalala/
0 голосов
/ 07 сентября 2011

Используя awk, вы можете использовать:

awk 'BEGIN { FS="/"; OFS="/"; } { $NF = ""; print; }'

Примеры:

$ echo http://site1.com/lala/la.txt | awk 'BEGIN { FS="/"; OFS="/"; } { $NF = ""; print; }'
http://site1.com/lala/

$ echo http://site1.com/lala/ | awk 'BEGIN { FS="/"; OFS="/"; } { $NF = ""; print; }'
http://site1.com/lala/
0 голосов
/ 07 сентября 2011

Вы можете использовать

sed -e 's/\(.*\)\/[^\/]*/\1/g'

Примеры:

bash-$ echo "http://site1.com/lalala.html" |sed -e 's/\(.*\)\/[^\/]*/\1/g'
http://site1.com
bash-$ echo "http://site2.com/lalala/" |sed -e 's/\(.*\)\/[^\/]*/\1/g'
http://site2.com/lalala
0 голосов
/ 07 сентября 2011

Помимо используемого языка, я бы разбил все строки (с \ n в качестве разделителя) на массив, затем я бы выполнил поиск lastIndexOf "/" каждого элемента, затем я удалил бы часть, которую я не делаю ' не нужно использовать обычные методы String. Конечно, вы можете сделать что-то интересное и с RegExp.

0 голосов
/ 07 сентября 2011

В PHP вы должны использовать dirname() в строке. Является ли PHP одним из возможных языков сценариев?

EDIT:

Perl и Python имеют dirname(), я не уверен в реализации. К сожалению

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...