在内存小于文件大小的情况下,大文件中快速查找定位一行
比如有一个文件
ABC 56
DEF 100
RET 300
...
文件有2列,第一列都是不重复的,第2列表示次数(当成一个数字就行了)。
如果文件大小为2G或者更大,内存只有1G的情况,如何快速定位到“ABC 56” 这一行。
请大拿们给个清晰点的解决方法。
内存 大文件
[解决办法]
fopen,再fscanf。
一次读一行就好啊。内存不会成为限制因素的。
[解决办法]
建hash表的话,岂不是要先对文件的内容进行hash?
可以用其他的工具来处理,未必一定要用算法。
比如awk:
awk '/ABC\t56/{ print NR}' file
可以获取匹配行的行号。
建议lz说下具体的需求,如果仅仅是获取行号的话,方案很多。
但是如果还有其他需求的话,类似awk这么做未必是最佳方案。
[解决办法]