请帮忙,尽管在这里进行了广泛的搜索,但我还是没有任何进展。
我有一个 html 文件,我想替换其中的某些链接 - 问题是,其中一些链接中有一个?。
original='http://old.com/img_7251.jpg?w=300&h=200'
replace='http://new.com/img_7251.jpg'
sed -i "s#$original#$replace#g" inputfile.html
当原始字符串中没有 ? 时,它会起作用,而当有 ? 时,它不会执行任何操作。我确实有一个逻辑,所以我需要用变量替换它。
在原始变量中转义 ? 可能会有帮助吗?但是如何做呢?
谢谢
答案1
您必须使用 ~ 代替 #,并在 sed 末尾添加 ~g 表示全局,请使用以下命令:
sed -i "s~$original~$replace~g" inputfile.html