Ordenar archivos con grep

4

Tengo algunos cientos de archivos de salida, algunos de los cuales contienen mensajes de error. Digamos que quiero poner automáticamente todos los archivos que contienen la cadena "ERROR_1" en una "subcarpeta_1", y el resto en una segunda "subcarpeta_2". Esto debería ser posible al conectar grep de alguna manera. ¿Cuál sería una sintaxis útil?

aldorado
fuente
Esto podría ayudar
50-3

Respuestas:

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

Esto debería funcionar.

Luigi
fuente
4

Este script moverá los archivos a las subcarpetas. Modifique el comodín *según sea necesario (por ejemplo *.log): este código buscará todos los archivos en el directorio actual

for f in *
do
    grep -f ERROR_1 "$f"
    if [ $? -eq 0 ]; then
       mv "$f" subfolder_1
    else
       mv "$f" subfolder_2
    fi
done
sospechoso
fuente