sed 替换文本 - 转义字符

Geo*_*lis -1 linux replace escaping sed search-and-replace

我有一个 mysqldump 文件,我想在其中替换以下文本<a href="/tag/<a href="http://www.mydomain.com/tag/但找不到正确转义所有特殊字符的方法。

我正在使用以下命令(+ 一些其他变体),
cat wordpress_posts.sql | sed 's%/<a href="\/\tag\/\/<a href="\http:/\/\www.mydomain.com/\tag/\/%g' > wordpress_posts_new.sql
但它不起作用。

有人可以帮忙吗?

更新 1:结果是 mysqldump 中的源字符串不是<a href="/tag/<a href=\"/tag/(注意等号后面的额外反斜杠)
这是 SQL 文件的一行的 pastebin,其中包含我要替换的字符串:http://pastebin .com/8G5mcxpJ

我尝试了 sed 命令的所有 3 个建议版本,但没有一个会替换上面的字符串<a href=\"http://www.mydomain.com/tag/ (是的,我在等号后添加了反斜杠)

sca*_*cai 6

您不必转义/,您可以使用任何其他分隔符:

sed 's#<a href=\\"/tag/#<a href="http://www.mydomain.com/tag/#' wordpress_posts.sql
Run Code Online (Sandbox Code Playgroud)