询问: Linux 下大文件内容查找

2017-05-08 16:39:06 +08:00
 ceshi123

问一下各位大神,现在有个日志文件的大小为 2.5 个 g,在 linux 下有什么命令可以打开这个文件,并且在里面搜索特定的内容吗,比如我要在这个日志中搜索订单号,效率高点的命令

12320 次点击
所在节点    Linux
40 条回复
lululau
2017-05-08 16:42:01 +08:00
lnav 不过你可能需要自定义 formatter
holyghost
2017-05-08 16:42:25 +08:00
。。。。。。。。。。。。。。。。。。

grep
rootit
2017-05-08 16:59:23 +08:00
linux 三剑客 awk sed grep
ceshi123
2017-05-08 17:05:01 +08:00
现在主要担心的是,用命令打开整个文件,根本打不开,肯定不能一次性全部读入内存吧,是不是存在某个命令,可以设定缓冲区
begeekmyfriend
2017-05-08 17:08:35 +08:00
open/lseek/read == open/pread
ldbC5uTBj11yaeh5
2017-05-08 17:12:10 +08:00
大兄弟这发帖吞吞吐吐,大家只能高来高去的回你。估计你这求助要吃瘪了。。。
byfar
2017-05-08 17:16:44 +08:00
之前看到有个 V 友用 vim 打开了 1.5G 的日志文件,用了 17 秒,没记错的话,不过不知道能不能进行查询等相关操作
bsidb
2017-05-08 17:21:25 +08:00
@ceshi123 grep 等命令是一行一行读入的,慢是慢点,但不用担心内存爆掉。
Lycnir
2017-05-08 17:31:16 +08:00
awk 处理快
whwq2012
2017-05-08 17:31:34 +08:00
less,more,grep,sed.如果是看得话,就用 less 就够了
htfy96
2017-05-08 17:39:20 +08:00
不要太担心 grep 这些上古工具的内存占用
yuedingwangji
2017-05-08 17:54:04 +08:00
才 2,5G 三剑客随便挑
ryd994
2017-05-08 17:55:23 +08:00
“现在主要担心的是,用命令打开整个文件,根本打不开”
没有恶意,楼主你是 PHP 程序员么?
rrfeng
2017-05-08 17:59:08 +08:00
less 会吃内存,不要用。
fxxkgw
2017-05-08 18:39:36 +08:00
我怀疑你是培训班出来的
tkisme
2017-05-08 19:40:12 +08:00
@fxxkgw 瞎说什么大实话
用 grep、sed、awk 加点正则就行
UnknownR
2017-05-08 20:05:26 +08:00
个人习惯,grep 查进程什么的用的比较多,sed 和 awk 查文本比较多
tolerance
2017-05-08 20:07:09 +08:00
数据单次利用还是重复利用,
若单次利用 grep 足以;
若须反复利用,建议将数据导入数据库,根据搜索的维度(如订单号)建立索引,根据业务复杂度选择关系型或者 NOSQL 数据库。
billlee
2017-05-08 20:31:45 +08:00
@ryd994 #13 应该是 gedit/nano/notepad 程序猿吧
JiaZombie
2017-05-08 20:59:40 +08:00
“现在主要担心的是,用命令打开整个文件,根本打不开” ,之前 vim 打开 3GB+的文件,没什么问题。
找内容上面已经说得很清楚了,awk, sed, grep。。。。

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

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

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

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

© 2021 V2EX