У меня есть большой файл, содержащий одну строку в каждой строке. Я хотел бы иметь возможность быстро определить, есть ли строка в файле. В идеале это должно быть сделано с использованием алгоритма двоичного типа.
Некоторые Googling показали look
команду с -b
флагом, который обещает найти и вывести все строки, начиная с заданного префикса, используя алгоритм двоичного поиска. К сожалению, он не работает должным образом и возвращает нулевые результаты для строк, которые, как я знаю, находятся в файле (они правильно возвращаются при эквивалентном grep
поиске).
Кто-нибудь знает другую утилиту или стратегию для эффективного поиска этого файла?
look -b
не удалось для меня с ошибкой File too large
. Я думаю, что он пытается прочитать все это в памяти.
look
команда работала правильно, потому что внешний вид, похоже, игнорирует локаль и просто использует C, как сортировку жестко, я также открыл ошибку из-за этого запутанного поведения: bugzilla.kernel.org/show_bug.cgi?id=198011