使用sed将旧链接地址替换为新链接地址

3
我正在使用Bash编写一个脚本,将旧链接URL替换为新链接URL。我的问题是,由于斜杠的存在,sed无法替换URL。如果我只放一些文本,它就可以工作。
我的代码:
sed -e s/"$old_link"/"$new_link"/g wget2.html > playlist.txt
2个回答

12

sed 支持 任何 字符作为分隔符,因此如果你想要替换的模式包含 /,请使用不同的分隔符。最常用的分隔符是 #|

sed  's|foo|bar|g' input
sed  's#foo#bar#g' input

1

如果您在sed替换中使用变量,请不要忘记加上双引号。此外,如果您的变量包含/,请使用不同的分隔符来进行sed替换。您可以使用_%|#等多种分隔符。

因此,可能会像这样工作 -

sed -e "s_"$old_link"_"$new_link"_g" wget2.html > playlist.txt

当你说“many more”时,是指我想要的任何字符,还是有一些接受的分隔符字符列表? - sergserg

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