That's what I do, grep into a file of targets and then vi the
file to make clean 'mv' commands. Though if you understood
the output of the grep you might pipe the stream to 'sed -e'
with similar sytnax, I prefer having the chance to correct any
fat-fingering along the way.
If you use a file as the intermediate medium and visually check before doing the 'move' then that will not encounter this problem.
However if you use as pipe (which means that the processes might run in parallel), make sure that the move destination is either not scanned by the 'grep' or scanned before the 'move' into that destination from somewhere else.
Susan