Ich habe eine große Datei mit einer Zeichenfolge in jeder Zeile. Ich möchte schnell feststellen können, ob sich eine Zeichenfolge in der Datei befindet. Idealerweise würde dies unter Verwendung eines binären Chop-Algorithmus erfolgen.
Einige Googler enthüllten den lookBefehl mit dem -bFlag, das verspricht, alle Zeichenfolgen, die mit einem bestimmten Präfix beginnen, mithilfe eines binären Suchalgorithmus zu lokalisieren und auszugeben. Leider scheint es nicht richtig zu funktionieren und gibt Null-Ergebnisse für Zeichenfolgen zurück, von denen ich weiß, dass sie in der Datei enthalten sind (sie werden von der entsprechenden grepSuche ordnungsgemäß zurückgegeben ).
Kennt jemand ein anderes Dienstprogramm oder eine andere Strategie, um diese Datei effizient zu durchsuchen?
look -bfehlgeschlagen für mich mit einem Fehler File too large. Ich denke, es wird versucht, das Ganze in Erinnerung zu behalten.
lookBefehl korrekt funktioniert, da look das Gebietsschema zu ignorieren scheint und nur C wie das hartcodierte Sortieren verwendet, habe ich auch einen Fehler geöffnet wegen dieses verwirrenden Verhaltens: bugzilla.kernel.org/show_bug.cgi?id=198011