我有一个巨大的纯文本文件,10亿字符串,其中平均字符串长度大约10-12,有潜在的重复,并且每个字符串是在不同的行上。我的任务是,当给定查询字符串时,如果字符串存在于我的文件中,找到第一个匹配的行,或返回“未找到”。通过一个巨大的短字符串搜索
一个自然的解决方案是每次运行grep -m1 -n '^querystring$'
,这需要大约15-20秒,并且这不需要额外的存储并且不占用内存。这是一个好的解决方案,还是有更好的?
(NB作为一个粗略的指导,我的存储要求:< 10GB和内存要求:< 16GB)