I have a few hundreds of output files, of which some contain error messages. Lets say I want to automatically put all files containing the string "ERROR_1" in a "subfolder_1", and the rest in a second "subfolder_2". This should be possible by piping grep somehow. What would be a useful syntax?
for a in *;do grep -q ERROR_1 "$a" && mv "$a" subfolder_1 || mv "$a" subfolder_2;done
This should work.
This script will move the files into the subfolders. Modify the wildcard
* as required (e.g.
*.log) - this code will search all files in the current directory
for f in * do grep -f ERROR_1 "$f" if [ $? -eq 0 ]; then mv "$f" subfolder_1 else mv "$f" subfolder_2 fi done