Поиск имени файла в файле

Кто-то наложил много вредоносного кода на каждый экземпляр wordpress на моем сервере. Во второй раз. (По крайней мере) Каждый файл js был изменен. Однако есть шаблон, код всегда выглядит так:

/*[file-name]*/[malicious code]/*file-name*/ 

есть ли способ, которым я мог бы использовать grep и sed, чтобы избавиться от этих фрагментов? В предыдущей атаке был добавлен аналогичный код в файлы, который я избавился от использования

 grep -rnwl './' -e "[/*]d754948f7cc08347e64716505bd652ae[*/].*[/*]d754948f7cc08347e64716505bd652ae[*/]" | xargs sed -i "s/[/*]d754948f7cc08347e64716505bd652ae[*/].*[/*]d754948f7cc08347e64716505bd652ae[*/]//g" 

есть ли способ изменить это выражение, чтобы использовать каждое имя файла вместо фиксированной строки типа «d754948f7cc08347e64716505bd652ae»?

Я создаю окончательный код постепенно, сначала мы находим все js-файлы:

 find <project_dir> -type f -name '*.js' 

Затем мы повторяем эти файлы:

 find <project_dir> -type f -name '*.js' | while read file_path; do # Code here run once for every file done 

Затем мы создаем шаблон с использованием имени файла и используем sed чтобы избавиться от вредоносного кода в файле:

 find <project_dir> -type f -name '*.js' | while read file_path; do file_name=$(basename "$file_path") pattern="/\*$file_name\*/.*/\*$file_name\*/" sed -ri "s:$pattern::g" "$file_path" done 

Некоторые примечания:

  • Шаг 0 – это резервное копирование ваших файлов.
  • В команде sed я использовал "s:$pattern::g" вместо "s/$pattern//g" , потому что наш шаблон поиска уже имеет в нем «/», что делает sed запутанным.
  • Это имя файла кода, содержащее пробел, по крайней мере, я пытался его обработать.