假设我想在文本文件中替换以下字符串:
document.write(unescape("%3Cscript src='" + \ + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
我想出了这个sed命令,但令人惊讶的是没有任何事情发生。
sed -i "s/document.write(unescape(\"%3Cscript src=\"\' + \\ + \"google-analytics.com\/ga.js\' type=\'text\/javascript\'%3E%3C\/script%3E\"));//g" myfile.html
这里有什么问题?
答案 0 :(得分:1)
sed
和shell扩展。使用\\\\
(在shell中变为\\
,然后在\
中变为sed
src="'
上匹配,但您的文件包含src='"
。使用
sed -i \
"s|document.write(unescape(\"%3Cscript src='\" + \\\\ + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));||g" \
myfile.html
我已将/
替换为|
以使其更具可读性(不再需要转义/
)。