Удалите файлы, которые предоставляются по каналу

У меня есть эта цепочка команд:

find . -print | grep php | xargs grep 'eval' -sl | xargs wc -l | grep ' [1-2][0-9] ' 

Это дает мне этот результат:

  14 ./includes/js/calendar/lang/vgju.php 18 ./includes/phpInputFilter/default.php 14 ./includes/Archive/eula.php 18 ./media/system/js/json.php 

Эти файлы являются зараженными файлами php, и я хотел бы удалить их с помощью моей сети. Как мне это сделать?

One Solution collect form web for “Удалите файлы, которые предоставляются по каналу”

Хотя вы, вероятно, можете сделать все это с помощью команды find, вы можете попробовать |xargs rm -f в эту команду |xargs rm -f .

Вот как это будет выглядеть

 find . -print | grep php | xargs grep 'eval' -sl | \ xargs wc -l | grep ' [1-2][0-9] ' | \ cut -f 2 -d ' ' | xargs rm -f 

Обратите внимание, что команда xargs rm работает здесь, потому что вы знаете, что в именах файлов нет специальных символов. Если в именах файлов могут быть пробелы, вы можете использовать xargs -d '\n' rm -f (только для Linux).

  • xargs -r0 vs xargs -0
  • git checkout конкретные файлы
  • Как заставить xargs играть хорошо с stdin?
  • Пустые строки при выполнении «grep | xargs "в" find -exec "
  • xargs не работает в Linux, поскольку работает в Unix
  • Формат вывода xargs
  • Найти -exec + vs find | xargs. Какой из них выбрать?
  • Почему имена файлов трубопроводов в VIM прерываются, когда я возвращаюсь в оболочку?
  • Как я удаляю все файлы в каталоге с конкретными расширениями, за исключением последних 5 из них
  • Выполнить строки вывода команд в качестве другой команды в Linux
  • xargs: Имеет ли порядок вариантов?
  • Linux и Unix - лучшая ОС в мире.