单个大文件内容检索方式咨询

2017-03-25 12:03:42 +08:00
 jonzlx
有个日志文件,每行是用户的行为日志,文件有 10 个多 G ,想要把有关键字 XXX 的行给找出来,不知道各位大神有没有好方法。

之前用了 windows find 和 linux grep 感觉效率不是很高。
2259 次点击
所在节点    问与答
7 条回复
phrack
2017-03-25 12:05:22 +08:00
定义你要的效率
10g 在 grep 面前要不了太久吧
yttyhf2006
2017-03-25 12:06:18 +08:00
效率不高是磁盘不够快?
loading
2017-03-25 12:13:52 +08:00
如果不是磁盘问题,多线程吧。
swulling
2017-03-25 12:21:28 +08:00
10G grep 很快,注意如果只是找关键字的话用 -F
sensui7
2017-03-25 14:42:05 +08:00
流程: 1. 读数据, 2. 搜索, 3.写输出
主要慢在 读和写上. 一种方法是将文件分成 10 份, 同时读, 但对机械硬盘没什么作用.
但是你可以试试把这 10 份文件放在 10 块硬盘同时读. (滑稽

还有一种即时输出结果, 这样在等待的时候起码能缓解下情绪.
FrankHB
2017-03-25 15:07:11 +08:00
虽然可能不是主要问题,不过 grep 的实现性能经常不够用。可以试一下 ag(the silver searcher)和 ripgrep 之类,用法和 grep 大同小异。
不过如果模式简单(只是找关键字 XXX ),可能自己直接实现个 native 程序(在各种意义上)还更快点……
jonzlx
2017-03-29 07:52:32 +08:00
@All

感谢各位~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/350222

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX