我有一些这样的路径:
/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)<<"
解决方案
我的代码基于 Wes Hardaker 的回答
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”。即:
RET="http://"`echo $ARG | sed 's#/www##;s#/(public_|)html/#/#;'
关于regex - 查找/替换目录和 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474336/