我有一個巨大的純文本文件,10億字符串,其中平均字符串長度大約10-12,有潛在的重複,並且每個字符串是在不同的行上。我的任務是,當給定查詢字符串時,如果字符串存在於我的文件中,找到第一個匹配的行,或返回「未找到」。通過一個巨大的短字符串搜索
一個自然的解決方案是每次運行grep -m1 -n '^querystring$'
,這需要大約15-20秒,並且這不需要額外的存儲並且不佔用內存。這是一個好的解決方案,還是有更好的?
(NB作爲一個粗略的指導,我的存儲要求:< 10GB和內存要求:< 16GB)