for a in *;do grep -q ERROR_1 "$a" && mv "$a" subfolder_1 || mv "$a" subfolder_2;done
Isso deve funcionar.
Eu tenho algumas centenas de arquivos de saída, dos quais alguns contêm mensagens de erro. Digamos que eu queira colocar automaticamente todos os arquivos que contêm a string "ERROR_1" em uma "subpasta_1" e o restante em uma segunda "subpasta_2". Isso deve ser possível pipetando o grep de alguma forma. Qual seria uma sintaxe útil?
Este script moverá os arquivos para as subpastas. Modifique o curinga *
conforme necessário (por exemplo, *.log
) - esse código pesquisará todos os arquivos no diretório atual
for f in *
do
grep -f ERROR_1 "$f"
if [ $? -eq 0 ]; then
mv "$f" subfolder_1
else
mv "$f" subfolder_2
fi
done