У меня есть несколько таких путей:
/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
I 'Я не уверен, что лучший способ справиться с частью регулярного выражения:
#!/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