Ssh 如何在目录中查找PHP中的代码并对其进行编辑

Ssh 如何在目录中查找PHP中的代码并对其进行编辑,ssh,find,Ssh,Find,我的服务器中有多个隐藏的被感染的PHP文件被加密(ClamAV看不到),我一直遇到问题 我想知道如何运行SSH命令来搜索所有受感染的文件并对其进行编辑 到目前为止,我通过文件内容找到了它们,如下所示: find /home/***/public_html/ -exec grep -l '$tnawdjmoxr' {} \; 注意:$tnawdjmoxr是一段代码 如何在目录/public\u html/中的所有PHP文件中查找和删除此代码?您可以添加xargs和sed: find /home/

我的服务器中有多个隐藏的被感染的PHP文件被加密(
ClamAV
看不到),我一直遇到问题

我想知道如何运行SSH命令来搜索所有受感染的文件并对其进行编辑

到目前为止,我通过文件内容找到了它们,如下所示:

find /home/***/public_html/ -exec grep -l '$tnawdjmoxr' {} \;
注意:
$tnawdjmoxr
是一段代码


如何在目录
/public\u html/
中的所有PHP文件中查找和删除此代码?

您可以添加
xargs
sed

find /home/***/public_html/ -exec grep -l '$tnawdjmoxr' {} \; | xargs -d '\n' -n 100 sed -i 's|\$tnawdjmoxr||g' --
  • 与使用grep相比,您还可以立即使用
    sed
    ,但是-它可以改变该文件的修改时间,并且可能会进行一些意外的修改,例如某些行尾等
  • -d'\n'
    确保逐行读取每个参数。如果文件名上有空格,这会很有帮助
  • -n 100
    限制
    sed
    将在一个实例中处理的文件数
  • --
    使sed识别以破折号开头的文件名。同样值得称赞的是,grep将拥有它:
    grep-l-e'$tnawdjmoxr'-{}
  • 使用
    grep-F
    可以更快地搜索文件
  • sed-i
    启用内联编辑
除了使用
xargs
之外,还可以使用Bash:

find /home/***/public_html/ -exec grep -l '$tnawdjmoxr' {} \; | while IFS= read -r FILE; do sed -i 's|\$tnawdjmoxr||g' -- "$FILE"; done

while IFS= read -r FILE; do sed -i 's|\$tnawdjmoxr||g' -- "$FILE"; done < <(exec find /home/***/public_html/ -exec grep -l '$tnawdjmoxr' {} \;)

readarray -t FILES < <(exec find /home/***/public_html/ -exec grep -l '$tnawdjmoxr' {} \;)
sed -i 's|\$tnawdjmoxr||g' -- "${FILES[@]}"
find/home/***/public_html/-exec grep-l'$tnawdjmoxr'{}\|而IFS=read-r文件;执行sed-i的| \$tnawdjmoxr | | g'-“$FILE”;完成

而IFS=read-r文件;执行sed-i的| \$tnawdjmoxr | | g'-“$FILE”;完成<欢迎不要担心:)