各行に1つの文字列を含む大きなファイルがあります。文字列がファイルにあるかどうかをすばやく判断できるようにしたいと思います。理想的には、これはバイナリチョップタイプのアルゴリズムを使用して行われます。
一部のGooglingは、バイナリ検索アルゴリズムを使用して、特定のプレフィックスで始まるすべての文字列を検索して出力することを約束するフラグをlook
付けてコマンドを明らかにしました-b
。残念ながら、これは正しく機能していないようで、ファイル内にあることがわかっている文字列に対してnullの結果を返します(同等のgrep
検索で正しく返されます)。
このファイルを効率的に検索するための別のユーティリティまたは戦略を知っている人はいますか?
look -b
エラーで失敗しましたFile too large
。全部をメモリに読み込もうとしていると思います。
look
コマンドを正しく機能させる必要があります。これは、lookがロケールを無視しているようで、ハードコードされたソートのようにCを使用するだけなので、バグも開きましたこの混乱する動作のため:bugzilla.kernel.org/show_bug.cgi