SED 替换 url 字符串

SED 替换 url 字符串

我正在尝试替换当前输出的字符串

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'

相关内容