假设我有一个文本文件,其中包含按字母顺序排序的数十亿文本行,例如
Bar=10
Foo=6
Naz=42
如何以最佳方式搜索以Foo
最优化的方式开始的行(文件包含数十亿个这样的变量),知道行按字母顺序排序并且我想要查找的行必须开始(或“包含”,如果更容易搜索) for)特定文本?
编辑:
这个问题可以被认为是重复的https://askubuntu.com/q/423886/10473
答案是使用look
足够快的速度来进行此类研究
答案1
我不知道这将如何扩展到您正在谈论的卷,但它似乎适用于包含以下内容的文件:
Foo=123
Foobar=646
Foobar=85489
Noo=8654
Noobar=8262
awk -F= '{if ($1 > "Foobar") { exit } ; if ($1 == "Foobar") { print $0 } }' sorted.txt
这只是一个概念证明。适应是一件简单的事情,因此您要匹配的术语会被传入。