需要Shell脚本来查找此模式

时间:2014-12-03 06:50:17

标签: linux shell awk sed

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

如果这种模式[xx](x是数字)在一行中有多次。至少它应该有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]; 

2 个答案:

答案 0 :(得分:0)

怎么样

$ 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

答案 1 :(得分:0)

find -name '*.php' -exec \
        sed -n 's!.*\(\[[0-9][0-9]\].*\)\{10\}.*!'{}'!p' {} \; | \
        uniq