Ich verwende egrep ( grep -E) mit einer PATTERN-Datei. ( -f path/to/file).
Dies geschieht in einer Endlosschleife in einem Textstrom. Dies bedeutet, dass ich nicht ALLE Eingaben auf einmal akkumulieren und an grep übergeben kann (wie *.log).
Gibt es eine Möglichkeit, grep dazu zu bringen, die NFA, die es erstellt, aus der PATTERN-Datei zu "speichern", um sie für die nächste Ausführung zu verwenden?
Ich habe Google durchsucht und die Dokumentation ohne Glück gelesen.
Ich werde versuchen, es ein bisschen mehr zu erklären. Ich muss eine feste Anzahl von Zeichenfolgen mit regulären Ausdrücken suchen (dies ist kein Teil einer Frage, kann aber gerne etwas anderes vorschlagen), z. B. IP-Adressen, Domains usw. Die Suche erfolgt in einem Feed aus dem Internet. Sie können sich das als Textstrom vorstellen. Ich kann nicht grepalle Eingaben verwenden, da es sich um einen Stream handelt. Ich kann einen Teil des Streams ansammeln und darauf verwenden grep(also nicht grepauf jeder Zeile), aber dies ist auch begrenzt (sagen wir für 30 Sekunden).
Ich weiß grep, dass eine NFA aus all ihren Mustern erstellt wird (in meinem Fall aus einer Datei). Meine Frage hier lautet also: Kann ich sagen grep, dass diese NFA für den nächsten Lauf gespeichert werden soll, da sie sich nicht ändern wird? Das würde mir jedes Mal die Zeit sparen, diese NFA aufzubauen.
grepauf diesem Block.
grepmehrmals laufen müssen . Möglicherweise verwandt: Warum ist das Abgleichen von 1250 Zeichenfolgen mit 90.000 Mustern so langsam?
grepsoll an einem Textstrom arbeiten, ich verstehe immer noch nicht, warum Sie mehrere Instanzen ausführen müssen. Warum können Sie nicht alle derselben grepInstanz zuführen ? Warum müssen Sie sie ansammeln , bevor Sie sie füttern grep?
greppro Textzeile ausführen? Woher kommt der Text? Wäretail -feine Option?