Meine Zeichenfolgen sind Dateipfade wie s/14/11/13/15/n7ce49B_235_25ed2d70.jpg; meine muster sind ganz einfach, alle mögen n7ce49B_.+.
Ich arbeite GNU grep 2.6.3unter Debian 6.0.10 auf einem Dell DL360G7- Server (ich erwähne es nur, um einen Eindruck von dieser Maschinenleistung zu bekommen) mit 15-k-Festplatten und dem folgenden Befehl: time LC_ALL=C grep -E -f path_to_patterns_file path_to_strings_fileKann einfach nicht ausgeführt werden - Server-Auslagerungen sind zu schlecht. Bei 20.000 Mustern dauert es mehr als 3 Stunden.
Das erscheint mir unvernünftig.
Per Kommentaranfrage gibt es die Dateien: Dateipfade 20k Muster
Man kann auch die Anzahl der Eingabezeilen und -muster testen und anpassen mit:
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). Es sieht so aus, als würde die Zeit für das Kompilieren der regulären Ausdrücke und das Zuweisen von viel Speicher aufgewendet. Mit -Fanstelle von -Eist es augenblicklich.
n7ce49B_.+gleichbedeutend mitn7ce49B_.
90k, hat die Beschreibung20KMuster