Linux 下遍历大文件每一行的最佳方法,最好是命令

2015-12-05 10:46:00 +08:00
 vus520
via: http://liuzhiqiangruc.iteye.com/blog/1454797

原始需求是想监控文件增加的每一行,传给外部程序处理。

实际上的办法是定时遍历文件的每行,再传给外部程序处理。
5323 次点击
所在节点    问与答
94 条回复
xufang
2015-12-05 13:29:13 +08:00
@clino 请看完原帖啊,所以楼主那他的 perl/awk 的改进版来挑战呀,我用 golang 排了一下。
clino
2015-12-05 13:48:54 +08:00
@xufang 没看到你的结果啊 要楼主实际比较过才行吧
另外我看了一下上面楼主根本不想用 go 啊...
xufang
2015-12-05 13:51:29 +08:00
@clino https://github.com/klauspost/readahead 饭这个不能让人喂的啊。

呵呵,单核性能够用就行,但是纯讨论了话,当然是精益求精了。
xufang
2015-12-05 13:52:32 +08:00
@clino 另外,不要做伸手党哦。
clino
2015-12-05 13:59:09 +08:00
@xufang 有点莫名其妙 什么伸手党
我没有要吃饭 你硬塞给我个 go 的玩意说是喂饭 然后说我伸手党 是有什么问题? 难道是 go 教里的原教旨主义?

我是说楼主一样的原始文件那两种方法都有测试时间结果 那要有 go 的方法对比测试一下时间才是实际
xufang
2015-12-05 14:01:52 +08:00
@clino 呵呵,转进的真好。
xufang
2015-12-05 14:04:14 +08:00
诸位觉得我的理论无懈可击了,所以逼我 show 代码了吗?

老实说,这块代码我也是花了一些心思写的,觉得是业内前沿的技术。不愿意白给的哦。

反正思路我也指出了,看客们自己判断。
kotokz
2015-12-05 14:17:19 +08:00
这种我肯定会用 nim +mmap
pright
2015-12-05 15:58:55 +08:00
#一粉顶十黑的绝佳例子#
xufang
2015-12-05 16:03:26 +08:00
@pright 辩不过就加 tag ,这样的 V2EX 人才越来越兴旺了。
xufang
2015-12-05 16:07:48 +08:00
在重复一下我在 /t/240708 的观点,以目前小学生泛滥的情况,我真的不愿意下场撕了。

夏虫不可语冰,年纪轻轻就学会了拒绝新事物新技术的,真是够了。
5thcat
2015-12-05 16:53:27 +08:00
顺序读文件还要并行真是醉了, 真是给 golang 抹黑
undeflife
2015-12-05 16:55:20 +08:00
楼上这位还真是 手里拿着锤子,看什么都像是钉子 ...

golang 没什么,golang 教徒就很让人烦了
xufang
2015-12-05 16:55:46 +08:00
@5thcat 切,正则处理不耗 CPU ?这位新来的,有一个回帖不看贴的。
xufang
2015-12-05 16:56:18 +08:00
@undeflife 嗯嗯,帽子发得很溜,在我看来你比你楼上还要 LOW
5thcat
2015-12-05 16:57:09 +08:00
@xufang 就问一句:多核能加速顺序文件读吗?
xufang
2015-12-05 16:57:21 +08:00
来来来,让我看下 V2EX 今天又多少小学生在线。 :)
xufang
2015-12-05 16:58:16 +08:00
@5thcat 呵呵,不用并行,你能在等 IO 的时候,把 CPU 也用上吗?
xufang
2015-12-05 16:59:41 +08:00
诸位小学生,回帖先看贴,我在前讲过 N 次我的观点了,不要略过。
xufang
2015-12-05 17:22:12 +08:00
舌战了一下午,除了这幅图,没有其他可以表达我此刻的感受了。

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

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

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

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

© 2021 V2EX