0

何人かの愚かなサルは彼らと私の時間を無駄にして私たちのウェブサイトの1つに感染しました。現在、ウェブサイトはftpを介して侵害されており、多数のファイルが感染しているようです。ftpクレデンシャルを変更したので、私の考えは、コードを取り除くためにfindとsedを実行することでした。

find . -type f -exec sed -i 's/term-to-search-for//g' {} \;

今、私は正規表現についていくらかの助けが必要です。スクリプトはで始まり、<script>JSコードがあり、次に呼び出される変数が常にありegbserb(他の場所では使用されません)、終了タグ(</script>)があります。2つの質問:

  1. これは私が試したものです:(script*egbserb*script愚かな単純さを保ちます)、しかしそれはうまくいきませんでした。
  2. コードがより多くの行に記述されている場合、正規表現をどのように記述する必要がありますか?

よろしくお願いします!

4

2 に答える 2

0

私は同様の問題に直面し、これをうまく使用しました。次のPerlスクリプトを使用できます。

#!/usr/bin/perl

use strict;
use warnings;
my @arr;
my $start;
my $flag=1;
open (MYFILE, 'temp');

while (<MYFILE>) {
if($flag!=0)
{
push(@arr,$_);
}
                if(/<\/script>/)
                {
                $flag=1;
                }
                if(/<script>/)
                {
                $start=scalar(@arr);
                }
          if(/ebgserb/)
          {
          delete @arr[$start-1..(scalar(@arr)-1)];
          $flag=0;
          }
}
print "@arr";
close(MYFILE);
于 2012-10-17T07:02:39.897 に答える
0

以下はあなたを助けるはずです。(仮定: 私は test_regex ファイルに取り組んでいます)

sed -r -i "s/.*ebgserb.*//g" test_regex
sed -r -i "s/.*split\(\"\&\&\"\).*//g" test_regex
于 2012-10-16T21:44:12.597 に答える