Mis cadenas son rutas de archivo como s/14/11/13/15/n7ce49B_235_25ed2d70.jpg; mis patrones son bastante simples, como todos n7ce49B_.+.
Estoy corriendo GNU grep 2.6.3bajo Debian 6.0.10 de Dell DL360G7 servidor (lo menciono sólo para dar una idea de esta máquina del perfomance) con 15k unidades de disco duro, y este comando: time LC_ALL=C grep -E -f path_to_patterns_file path_to_strings_filesimplemente no se puede completar - permutas de servidores demasiado mal. Con 20k patrones, lleva más de 3 horas.
Eso me parece irracional.
Por solicitud de comentario, están los archivos: rutas de archivo 20k patrones
También se puede probar y ajustar el número de líneas y patrones de entrada con:
xxd -p /dev/urandom | fold -sw 100 | head -n 1250 |
grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000)

90k, la descripción tiene20Kpatronesgrep.xxd -p /dev/urandom | fold -sw 100 | head -n 1250 | grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000). Parece que se pasa el tiempo compilando las expresiones regulares y asignando mucha memoria. Con en-Flugar de-E, es instantáneo.n7ce49B_.+es equivalente an7ce49B_.Respuestas:
Te encontraste con un problema de rendimiento en versiones anteriores de GNU grep ( error # 22357 ) que fue abordado por este commit , lanzado en 2.28, aunque ese cambio introdujo algunas regresiones , por lo que querrás obtener GNU
grep3.0 o más nuevo.fuente