Ordenar arquivos com grep

4

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?

    
por aldorado 06.09.2013 / 10:18

2 respostas

5
for a in *;do grep -q ERROR_1 "$a" && mv "$a" subfolder_1 || mv "$a" subfolder_2;done

Isso deve funcionar.

    
por 06.09.2013 / 10:30
4

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
    
por 06.09.2013 / 10:25