grep -rlZ --exclude-dir=dir1 --exclude-dir=dir2 HUMAN . |
xargs -r0 rm -f
Se você quiser que find
faça o diretório traversal:
find . -type d \( -name dir1 -o -name dir2 \) -prune -o \
-type f -exec grep -lZ HUMAN {} + |
xargs -r0 rm -f
Portável / normal, isso teria que ser:
find . -type d \( -name dir1 -o -name dir2 \) -prune -o \
-type f -exec grep -q HUMAN {} \; -exec rm -f {} +
mas isso significa executar um grep
por arquivo.
Para que o --exclude-dir={dir1,dir2}
funcione, você precisa de um shell com suporte à expansão de chaves, como csh, tcsh, ksh, zsh, bash ou fish.