J'ai un gros fichier contenant une chaîne sur chaque ligne. Je voudrais pouvoir déterminer rapidement si une chaîne est dans le fichier. Idéalement, cela se ferait en utilisant un algorithme de type binaire chop.
Certains googleurs ont révélé la look
commande avec le -b
drapeau qui promet de localiser et de sortir toutes les chaînes commençant par un préfixe donné en utilisant un algorithme de recherche binaire. Malheureusement, cela ne semble pas fonctionner correctement et renvoie des résultats nuls pour les chaînes que je connais dans le fichier (elles sont correctement renvoyées par la grep
recherche équivalente ).
Quelqu'un connaît-il un autre utilitaire ou stratégie pour rechercher ce fichier efficacement?
look -b
a échoué pour moi avec une erreur File too large
. Je pense qu'il essaie de lire le tout en mémoire.
look
commande fonctionne correctement, car l'apparence semble ignorer les paramètres régionaux et utilise uniquement C comme le tri en dur, j'ai également ouvert un bogue à cause de ce comportement déroutant: bugzilla.kernel.org/show_bug.cgi?id=198011