有sed问题。我喜欢这个
sed -i '' 's#\<script src\=\"http\:\/\/widget\.blah\.com\/js\/sis_some_widget.*.class\=\"sis\-some\-widget\"\>\<\/div\>#newblah.com#g' lol.sql .
这应该用代码的两个部分之间的通配符替换整个脚本代码。问题是,通配符的部分对于每个脚本代码(在许多wordpress页面上)是不同的。唯一常见的部分是<script src="http://widget.blah.com/js/sis_some_widget.js?
和class="sis-some-widget"></div>
帮我弄清楚为什么这个sed不起作用,我怎么想用通配符和许多特殊字符来sed字符串。
代码看起来像
<script src="http://widget.blah.com/js/sis_some_widget.js?MANY MANY SPECIAL CHARACTERS and letters class="sis-some-widget"></div>
答案 0 :(得分:0)
您将在不需要反斜杠的地方添加反斜杠。如果您使用“#”作为分隔符,则唯一需要转义的字符就是域名中的点。
'\ <','\ =','-'等不是有效的字符转义符,因此sed将这些反斜杠解释为文字字符。
您的表情应该是:
's#<script src="http://widget\.blah\.com/js/sis_some_widget.*class="sis-some-widget"></div>#newblah.com#g'