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