数十億行の可変長の大きなソート済みファイルがあります。新しい行があれば、ソートされたファイルに含まれていた場合に取得するバイト番号を知りたいと思います。
例
a\n
c\n
d\n
f\n
g\n
入力 'foo'が与えられると、出力9が得られます。
これは、ファイル全体を単純に調べることで簡単に実行できますが、数十億行の可変長であるため、バイナリ検索を行う方が高速です。
そのようなテキスト処理ツールはすでに存在しますか?
編集:
今では:https : //gitlab.com/ole.tange/tangetools/blob/master/bsearch/bsearch
検索する行の長さ(文字数)は?また、そのような行をいくつ検索する必要がありますか?
—
gogoud
@gogoud限られたツールを探しているのではなく、任意のテキストファイルで機能するツールを探しています(行の長さや行数に関係なく)。
—
オレ丹下
そのような巨大な入力を生成したい人のために:unix.stackexchange.com/a/279098/9689
—
Grzegorz Wierzowiecki