Mam duży plik zawierający jeden ciąg w każdej linii. Chciałbym móc szybko ustalić, czy ciąg znajduje się w pliku. Najlepiej byłoby to zrobić przy użyciu algorytmu typu binarnego.
Niektórzy Googling ujawnili look
polecenie z -b
flagą, która obiecuje zlokalizować i wyprowadzić wszystkie ciągi zaczynające się od danego prefiksu za pomocą algorytmu wyszukiwania binarnego. Niestety, wydaje się, że nie działa poprawnie i zwraca wyniki null dla ciągów, które, jak wiem, znajdują się w pliku (są one poprawnie zwracane przez równoważne grep
wyszukiwanie).
Czy ktoś wie o innym narzędziu lub strategii skutecznego wyszukiwania tego pliku?
look -b
nie udało mi się z błędem File too large
. Myślę, że stara się wczytać całą rzecz do pamięci.
look
polecenie działało poprawnie, ponieważ wygląd wydaje się ignorować ustawienia regionalne i po prostu używa C jak sortowania na stałe, otworzyłem również błąd z powodu tego mylącego zachowania: bugzilla.kernel.org/show_bug.cgi?id=198011