Saya memiliki file besar yang berisi satu string di setiap baris. Saya ingin dapat dengan cepat menentukan apakah string ada di file. Idealnya, ini akan dilakukan dengan menggunakan algoritma tipe biner chop.
Beberapa Googling mengungkapkan look
perintah dengan -b
flag yang menjanjikan untuk menemukan dan mengeluarkan semua string yang diawali dengan awalan yang diberikan menggunakan algoritma pencarian biner. Sayangnya, tampaknya tidak berfungsi dengan benar dan mengembalikan hasil nol untuk string yang saya tahu ada di file (mereka dikembalikan dengan benar oleh grep
pencarian yang setara ).
Adakah yang tahu utilitas atau strategi lain untuk mencari file ini secara efisien?
look -b
gagal untuk saya dengan kesalahan File too large
. Saya pikir itu mencoba membaca semuanya ke dalam memori.
look
perintah berfungsi dengan benar, karena tampilan tampaknya mengabaikan lokal dan hanya menggunakan C seperti menyortir hardcoded, saya juga membuka bug karena perilaku membingungkan ini: bugzilla.kernel.org/show_bug.cgi?id=198011