需要Shell脚本来find这种模式

我们正在提供共享主机,我们大多数客户都使用易受攻击的插件,这导致许多被黑客入侵的文件正在上传,现在我想删除这些文件。

如果这种模式[xx] (x是数字)在一行中有多次。 至less它应该在那里10次,那么这是一个黑客/垃圾邮件文件,然后我可以删除它们。 我尝试了这么多的组合,似乎没有任何工作。

 $GLOBALS['vtton6'] = $r76[94].$r76[24].$r76[24].$r76[49].$r76[24].$r76[54].$r76[24].$r76[94].$r76[41].$r76[49].$r76[24].$r76[87].$r76[53].$r76[58].$r76[61]; $GLOBALS['jlxru64'] = $r76[53].$r76[58].$r76[53].$r76[54].$r76[66].$r76[94].$r76[87]; $GLOBALS['vajox38'] = $r76[95].$r76[94].$r76[7].$r76[53].$r76[58].$r76[94]; $GLOBALS['qobdl72'] = $r76[36].$r76[70].$r76[27].$r76[45].$r76[61].$r76[76].$r76[31]; $GLOBALS['yhrfr40'] = $r76[20].$r76[69].$r76[36].$r76[20].$r76[58].$r76[15].$r76[46]; $GLOBALS['quzii24'] = $r76[78].$r76[95].$r76[28]; $GLOBALS['tlyiy12'] = $r76[27].$r76[49].$r76[45].$r76[58].$r76[87]; 

怎么样

 $ grep -E '(\[[0-9]+\].*){10}' inputFile 

了RegexDemo

要删除文件,

  $ grep -qE '(\[[0-9]+\].*){10}' inputFile && rm inputFile 

要么

一个漫长的解决方案将是

 $ [ $(grep -oE '\[[0-9]+\]' inputFile | wc -l) -ge 10 ] && rm inputFile 
 find -name '*.php' -exec \ sed -n 's!.*\(\[[0-9][0-9]\].*\)\{10\}.*!'{}'!p' {} \; | \ uniq