У меня есть такие пути:
/www/site1.dev/public_html/test.htm /www/site2.dev/html/test.htm /www/site3.dev/public/test.htm
Я хотел бы передать их сценарию bash и получить результат в этом формате:
http://site1.dev/test.htm http://site2.dev/test.htm http://site3.dev/test.htm
Я не уверен, что лучший способ справиться с частью регулярного выражения:
#!/bin/sh RET=''; function trim() { echo $1; } for ARG in "$@" do //do match and add existing RET value RET= 'http://'(regular expression or find/replace here) RET done echo ">>$(trim $RET)<<"
Решение
Мой код основан на ответе Уэса Хардакера
DOMAIN=`echo $ARG | sed 's#.*www/##'` DOMAIN=`echo $DOMAIN | sed -E 's#/(public|html).*##'` POST=`echo $ARG | sed -E 's#.*html##'` echo 'http://'$DOMAIN$POST
sed
сработало для меня лучше всего. Я добавил свой синтаксис в конец вопроса. 29.03.2011