J'utilise egrep ( grep -E) avec un fichier PATTERN. ( -f path/to/file).
Cela se fait dans une boucle infinie sur un flux de texte. Cela implique que je ne peux pas accumuler et passer TOUTES les entrées à grep à la fois (comme *.log).
Existe-t-il un moyen de faire grep "enregistrer" le NFA qu'il construit à partir du fichier PATTERN pour l'utiliser pour sa prochaine exécution?
J'ai cherché sur Google et j'ai lu la documentation sans succès.
Je vais essayer de l'expliquer un peu plus. J'ai besoin de localiser un nombre fixe de chaînes avec des expressions rationnelles (cela ne fait pas partie d'une question mais n'hésitez pas à suggérer le contraire) telles que les adresses IP, les domaines, etc. La recherche se fait sur un flux provenant d'Internet. Vous pouvez le considérer comme un flux de texte. Je ne peux pas utiliser grepsur toutes les entrées car c'est un flux. Je peux accumuler un morceau de flux et l'utiliser grepdessus (donc ne pas utiliser grepsur chaque ligne) mais cela est également limité (disons pendant 30 secondes).
Je sais grepest en train de construire un NFA à partir de tous ses modèles (dans mon cas à partir d'un fichier). Donc ma question ici est: puis-je dire grepde sauvegarder ce NFA pour la prochaine exécution, car il ne va pas changer? Cela me ferait gagner du temps pour construire cette NFA à chaque fois.
grepsur ce morceau.
grepplusieurs fois. Peut-être lié: pourquoi la mise en correspondance de 1250 chaînes avec des motifs de 90k est-elle si lente?
grepest censé fonctionner sur un flux de texte, je ne comprends toujours pas pourquoi vous devez exécuter plusieurs instances. Pourquoi ne pouvez-vous pas alimenter tous ces éléments dans la même grepinstance? Pourquoi avez-vous besoin de les accumuler avant de les nourrir grep?
greppar ligne de texte? D'où vient le texte? Seraittail -fune option?