Le mie stringhe sono percorsi di file simili s/14/11/13/15/n7ce49B_235_25ed2d70.jpg
; i miei schemi sono abbastanza semplici, tutti simili n7ce49B_.+
.
Sto correndo GNU grep 2.6.3
con Debian 6.0.10 sul server Dell DL360G7 (lo menziono solo per dare un senso di prestazioni di questa macchina) con HDD da 15k, e questo comando: time LC_ALL=C grep -E -f path_to_patterns_file path_to_strings_file
semplicemente impossibile completare - gli scambi di server sono troppo gravi. Con 20k pattern ci vogliono più di 3 ore.
Mi sembra irragionevole.
Per richiesta di commento, ci sono i file: percorsi di file 20k modelli
Si può anche testare e regolare il numero di linee e schemi di input con:
xxd -p /dev/urandom | fold -sw 100 | head -n 1250 |
grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000)
grep
.
xxd -p /dev/urandom | fold -sw 100 | head -n 1250 | grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000)
. Sembra che il tempo sia trascorso compilando le regexps e allocando molta memoria. Con -F
invece di -E
, è istantaneo.
n7ce49B_.+
è equivalente an7ce49B_.
90k
, la descrizione ha20K
motivi