Estoy usando egrep ( grep -E) con un archivo PATTERN. ( -f path/to/file)
Esto se realiza en un bucle infinito en una secuencia de texto. Esto implica que no puedo acumular y pasar TODA la entrada a grep a la vez (como *.log).
¿Hay alguna manera de hacer que grep "guarde" el NFA que está construyendo desde el archivo PATTERN para usarlo en su próxima ejecución?
He buscado en Google y he leído la documentación sin suerte.
Trataré de explicarlo un poco más. Necesito localizar un número fijo de cadenas con expresiones regulares (esto no es parte de una pregunta, pero siéntase libre de sugerir lo contrario) como direcciones IP, dominios, etc. La búsqueda se realiza en un feed de Internet. Puedes pensarlo como una secuencia de texto. No puedo usar greptodas las entradas ya que es una secuencia. Puedo acumular un fragmento de flujo y usarlo grep(por lo tanto, no usarlo grepen cada línea), pero esto también es limitado (digamos durante 30 segundos).
Sé que grepestá construyendo un NFA a partir de todos sus patrones (en mi caso a partir de un archivo). Entonces mi pregunta aquí es: ¿puedo decirle grepque guarde esa NFA para la próxima ejecución, ya que no va a cambiar? Eso me ahorraría el tiempo de construir esa NFA cada vez.
grepesa parte.
grepvarias veces. Posiblemente relacionado: ¿Por qué es tan lento hacer coincidir 1250 cadenas con patrones de 90k?
grepestá destinado a funcionar en una secuencia de texto, todavía no entiendo por qué necesitarías ejecutar varias instancias. ¿Por qué no puedes alimentar a todos a la misma grepinstancia? ¿Por qué necesitas acumularlos antes de alimentarlos grep?
greppor línea de texto? ¿De dónde viene el texto? ¿tail -fSería una opción?