Как удалить файлы с определённой подстрокой?

В директории присутствует множество файлов. В файлах находятся строки. Как удалить файлы с определённой строкой внутри?

Для удаления файлов, содержащих определённую подстроку, необходимо выполнить следующую команду:

1
grep -lRIZ 'foo' '/path/to/dir' | xargs -0 rm -f --

Где:

  • -l - вывести имена файлов, соответствующих шаблону поиска foo.
  • -R - рекурсивный поиск по директории /path/to/dir.
  • -I - пропускать двоичные файлы.
  • -Z - гарантирует, что имена файлов заканчиваются нулём.
  • xargs -0 - передача имён файлов команде rm -f.
  • -- - конец опций и разрешение удалять файлы, имена которых начинаются с -.

Источники: