Sto usando egrep ( grep -E) con un file PATTERN. ( -f path/to/file).
Questo viene fatto in un ciclo infinito su un flusso di testo. Ciò implica che non posso accumulare e passare TUTTI gli input a grep in una sola volta (come *.log).
C'è un modo per fare in modo che grep "salvi" l'NFA che sta costruendo dal file PATTERN da usare per la sua prossima esecuzione?
Ho cercato su Google e ho letto la documentazione senza fortuna.
Proverò a spiegarlo un po 'di più. Devo individuare un numero fisso di stringhe con regex (questa non è una parte di una domanda ma non posso suggerire diversamente) come indirizzi IP, domini ecc. La ricerca viene effettuata su un feed da Internet. Puoi pensarlo come un flusso di testo. Non riesco a utilizzare greptutti gli input poiché è uno stream. Posso accumulare un pezzo di stream e usarlo grepsu di esso (quindi non usando grepsu ogni riga) ma anche questo è limitato (diciamo per 30 secondi).
So che grepsta costruendo un NFA da tutti i suoi schemi (nel mio caso da un file). Quindi la mia domanda qui è: posso dire grepdi salvare quell'NFA per la prossima corsa, dal momento che non cambierà? Ciò mi farebbe risparmiare il tempo di costruire quell'NFA ogni volta.
grepsu quel pezzo.
greppiù volte. Possibilmente correlato: perché l'abbinamento delle stringhe 1250 con modelli da 90k è così lento?
grepè pensato per funzionare su un flusso di testo, non capisco ancora perché dovresti eseguire diverse istanze. Perché non puoi alimentare tutti quelli nella stessa grepistanza? Perché è necessario accumularli prima di nutrirsi grep?
grepper riga di testo? Da dove viene il testo? Sarebbetail -fun'opzione?