Question Trier les fichiers avec grep


J'ai quelques centaines de fichiers de sortie, dont certains contiennent des messages d'erreur. Disons que je veux mettre automatiquement tous les fichiers contenant la chaîne "ERROR_1" dans un "sous-dossier_1", et le reste dans un second "sous-dossier_2". Cela devrait être possible en déplaçant grep en quelque sorte. Quelle serait une syntaxe utile?


4
2017-09-06 08:18


origine


Ce pourrait aider - 50-3


Réponses:


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

Cela devrait fonctionner.


5
2017-09-06 08:30





Ce script déplacera les fichiers dans les sous-dossiers. Modifier le caractère générique * comme requis (par ex. *.log) - ce code recherchera tous les fichiers du répertoire en cours

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

4
2017-09-06 08:25