我正在尝试替换当前输出的字符串
http://domain1.com/subfolder1/http://domain2.com/subfolder2
这样它只会输出为
http://domain2.com/subfolder2
我正在使用 SED 将 URL 替换为后一个域,但我无法让它工作。如果我将“domain1”设置为“domain2”,它会起作用,但我希望能够替换整个字符串。
我试图通过以下代码来做到这一点:
for FILE in `cat/WORKDIR/$inputControlFileName`; do sed -i -e "s~$SEARCHTEXT~$REPLACEWITH~g" $OutputDirectory/$FILE; done;
我的搜索参数是http://domain1.com/subdomain/http://domain2.com/subdomain
,替换参数是http://domain2.com/subdomain
感谢任何指导。
更新感谢大家的帮助,我最终通过仅输出domain1.com/domain.2.com 然后转义存储在变量中的值来使其工作。
答案1
尝试这个,
echo "http://domain1.com/subfolder1/http://domain2.com/subfolder2" | sed 's/^http.*http:/http:/'
http://domain2.com/subfolder2
答案2
如果你绝不有:在 URI 中,您只能使用 bash 内置命令来执行此操作。
function last_addr(){
IFS=:
string="$1"
array=($string)
echo -n http:; echo ${array[-1]}; unset IFS
}
last_addr 'http://domain1.com/subfolder1/http://domain2.com/subfolder2'