在bash脚本中:
我想用以下url替换html文件中的出现单词'test': url =“ http://www.test.com/testcom&_mc_jhc=ex_XZ-r&oh=044”
search ='test'
尝试sed:
sed -i'.original' 's|'"${search}"'|'"${url}"'|g' index.html
它可以工作,但它也用'test'替换了所有&
用awk尝试过:
awk '{sub(/test/,'"${url}"')}1'
但同样的问题。
为什么网址中的&也被测试取代了?
有解决方案吗?
答案 0 :(得分:-1)
答案是使用这个:
replaceEscaped=$(sed 's/[&/\]/\\&/g' <<<"$url") # escape it
sed -i'.original' 's|'"${search}"'|'"${replaceEscaped}"'|g' index.html