Use Grep to Find Content and Move
Use Grep to Find Content and Move
October 18, 2025
From Stack Overflow
If you want to find and move files that do not match your pattern (move files that don’t contain 'Subject \[SPAM\]' in this example) use:
grep -L -Z -r 'Subject: \[SPAM\]' . | xargs -0 -I{} mv {} DIRThe -Z means output with zeros (\0) after the filenames (so spaces are not used as delimeters).
xargs -0means interpret \0 to be delimiters.
The -L means find files that do not match the pattern. Replace -L with -l if you want to move files that match your pattern.
Then
-I{} mv {} DIRmeans replace {} with the filenames, so you get mv filenames DIR.