使用SSH查找并替换多个行字符串

时间:2015-11-10 12:08:31

标签: ssh

我只是SSH的轻量级用户,并认为这个很难。

我的垃圾邮件代码遍布多个目录中的header.php和footer.php文件,其中包含以下多行字符串:

<div style="position:absolute;filter:alpha(opacity=0);opacity:0.001;z-index:10;”>
<a href="http://www.awful.org/" title="awful spammy shoes or whatever online">awful spammy shoes or whatever online</a>
<a href="http://pleasestopspammingme.fr/sneakers/" title="blah blah outlet">blah blah outlet</a>
</div>

我希望找到并替换或删除文件中的代码。

不是100%确定可用的linux工具(例如:perl),但很乐意尝试提供建议。

1 个答案:

答案 0 :(得分:0)

我在配偶的帮助下得到了答案。

如果有标准的开头和标准的结尾,那么sed就会拯救。

使用以下开头字符串:

<div style="position:absolute;filter:alpha(opacity=0);opacity:0.001;z-index:10;">

和结束字符串:

</div>

然后,以下内容查找并删除开始字符串,结束字符串以及包含在其中的任何内容:

find . -type f -name "*.php" -exec sed -i '/<div style="position:absolute;filter:alpha(opacity=0);opacity:0.001;z-index:10;">/,/<\/div>/d' {} \; 

经过测试,就像一个魅力!