20-04
2010

Grep, fonction OR et BenchMark

Tags: Bash | Grep | OR
Grep permet d'utiliser une fonction OR lors de ses recherches et de gagner des précieuses secondes. Si vous recherchez, par exemple, dans vos mails les status "Over Quota" pour les compter, voici la démarche, tout d'abord sans la fonction OR.
cat * | grep -i "550 5.2.2" && cat * | grep -i "552 5.2.2" && cat * | grep -i "quota exceeded" && cat * |grep -i "Over quota"
J'ai rajouté un :
date >> temp.txt
Au début et à la fin des commandes afin de compter la durée de l'opération. L'opération prends donc 7 secondes pour 15'000 fichiers. Avec la fonction OR de grep :
cat * | grep -i "550 5.2.2\|552 5.2.2\|quota exceeded\|Over quota"
L'opération prends 3 secondes. Vous aurez compris que pour utiliser la fonction OR de grep, il suffit de rajouter un antislash suivi d'un pipe : \| et que cette utilisation est nettement plus rapide. Si vous souhaitez utiliser Awk, vous pouvez le faire, j'ai trouvé (dans mes petits benchmark une seconde de plus, mais je pense que ce n'est pas significatif) :
cat * | awk '/550 5.2.2|552 5.2.2|quota exceeded|Over quota/'

 

 

Aucun commentaire pour ce billet.

 

Votre commentaire