使用sed替换URL

4

我在使用sed命令替换sql文件中的字符串时遇到了一些问题。 目前我所写的命令是:

sed -i 's#http://mydomainurl.co.uk#http://pinkiepie#g' /home/user/dbs/my_database.sql

每当我运行这个程序时,它确实会删除http://mydomainurl.co.uk,但却用http://pinkiepie.co.uk替换它。家里的本地机器名叫做pinkiepie,因此不需要TLD.co.uk后缀,所以它应该被替换为http://pinkiepie
你知道我在哪里出错了吗?

即使点号需要转义以符合正则表达式的要求,此处仍按原样工作。 - Jean-François Fabre
你能澄清一下哪些部分出了问题以及你想要实现什么吗? - cianius
是的,我想用 http://localmachine 替换 http://mydomainurl.co.uk,但它总是保留 URL 的 .co.uk 部分,因此我得到了 http://localmachine.co.uk。 - tinyhammers
这对我有用... echo 'replace http://mydomainurl.co.uk' | sed 's#http://mydomainurl.co.uk#http://pinkiepie#g' - Sundeep
你能否发布一行来自你的文件的样本文本?另外,你的sed版本是什么? - Sundeep
显示剩余4条评论
2个回答

7
sed -i 's,http://localhost:3000/,https://anywebsite.io/,g' ./destination

最简单的解决方法

1
最佳答案!谢谢伙计。 - Hamza Saeed

0
我用这个递归地将 http 改为 https。
grep -rl 'href="http://' ./ | xargs sed -i 's/href\=\"http\:\/\//href\=\"https\:\/\//g'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接