$ grep --help | grep with-matches
-l, --files-with-matches print only names of FILEs containing matches
Что теперь зависит от того, сколько файлов есть, и насколько параноидально вы должны относиться к их именам.От самых простых
mv $(grep -l pattern files) target
до самых надежных
grep -l -Z pattern files | xargs -0 mv -t target-directory --