
问一下各位大神,现在有个日志文件的大小为 2.5 个 g,在 linux 下有什么命令可以打开这个文件,并且在里面搜索特定的内容吗,比如我要在这个日志中搜索订单号,效率高点的命令
1 lululau 2017-05-08 16:42:01 +08:00 lnav 不过你可能需要自定义 formatter |
2 holyghost 2017-05-08 16:42:25 +08:00 。。。。。。。。。。。。。。。。。。 grep |
3 rootit 2017-05-08 16:59:23 +08:00 linux 三剑客 awk sed grep |
4 ceshi123 OP 现在主要担心的是,用命令打开整个文件,根本打不开,肯定不能一次性全部读入内存吧,是不是存在某个命令,可以设定缓冲区 |
5 begeekmyfriend 2017-05-08 17:08:35 +08:00 open/lseek/read == open/pread |
6 ldbC5uTBj11yaeh5 2017-05-08 17:12:10 +08:00 大兄弟这发帖吞吞吐吐,大家只能高来高去的回你。估计你这求助要吃瘪了。。。 |
7 byfar   2017-05-08 17:16:44 +08:00 之前看到有个 V 友用 vim 打开了 1.5G 的日志文件,用了 17 秒,没记错的话,不过不知道能不能进行查询等相关操作 |
9 Lycnir 2017-05-08 17:31:16 +08:00 awk 处理快 |
10 syahd 2017-05-08 17:31:34 +08:00 via Android less,more,grep,sed.如果是看得话,就用 less 就够了 |
11 htfy96 2017-05-08 17:39:20 +08:00 不要太担心 grep 这些上古工具的内存占用 |
12 yuedingwangji 2017-05-08 17:54:04 +08:00 才 2,5G 三剑客随便挑 |
13 ryd994 2017-05-08 17:55:23 +08:00 via Android “现在主要担心的是,用命令打开整个文件,根本打不开” 没有恶意,楼主你是 PHP 程序员么? |
14 rrfeng 2017-05-08 17:59:08 +08:00 less 会吃内存,不要用。 |
15 fxxkgw 2017-05-08 18:39:36 +08:00 我怀疑你是培训班出来的 |
17 UnknownR 2017-05-08 20:05:26 +08:00 个人习惯,grep 查进程什么的用的比较多,sed 和 awk 查文本比较多 |
18 tolerance 2017-05-08 20:07:09 +08:00 数据单次利用还是重复利用, 若单次利用 grep 足以; 若须反复利用,建议将数据导入数据库,根据搜索的维度(如订单号)建立索引,根据业务复杂度选择关系型或者 NOSQL 数据库。 |
20 JiaZombie 2017-05-08 20:59:40 +08:00 “现在主要担心的是,用命令打开整个文件,根本打不开” ,之前 vim 打开 3GB+的文件,没什么问题。 找内容上面已经说得很清楚了,awk, sed, grep。。。。 |
21 woshixiaohao1982 2017-05-08 21:17:11 +08:00 打开文件不是问题,文件再大,也是虚拟地址,只有访问的时候,会触发操作系统的页中断, |
22 oglop 2017-05-08 22:52:36 +08:00 via Android 可以试试 silver searcher (ag) |
23 congeec 2017-05-08 23:57:25 +08:00 via iPhone @byfar 那是没配置好。vim 应该能秒开的。不过用 vim 搜索还是算了吧。 可以用 ag/rg 搜到位置,记下偏移,然后用 vim 打开跳到那儿就是了 |
24 doubleflower 2017-05-09 05:54:22 +08:00 via Android @congeec vim 能秒开?你试过? |
25 congeec 2017-05-09 07:09:20 +08:00 @doubleflower 我还没见过 vim 不能秒开的文件。不能秒开要么是哪儿出 bug 了,要么就是某插件要花很多时间 parse。给个大文件,我打开你瞅瞅 |
26 doubleflower 2017-05-09 07:26:33 +08:00 @congeec 人家是 2.5 个 G,你电脑上有视频文件有 2G 以上的吧,打开个试试能不能秒开 |
27 lilifenghao44 2017-05-09 08:47:11 +08:00 |
29 Seymer 2017-05-09 10:08:33 +08:00 如果不是非要在 Linux 命令下操作,你或许可以试试 Windows 下的这款日志查看工具 LogViewer Pro,可以满足你的需求。 |
30 vuuv 2017-05-09 10:27:33 +08:00 grep -F 订单号 文件 说实话, 2.5G 不算大. -F 参数搜索很快的. |
31 willakira 2017-05-09 10:27:49 +08:00 less/grep |
32 lkmmmj 2017-05-09 11:31:38 +08:00 less |
33 xiaket 2017-05-09 11:57:42 +08:00 我还以为谁写了一个上 T 的文件呢... 大失所望 |
34 congeec 2017-05-09 13:18:15 +08:00 via iPhone @doubleflower 大兄弟你这个是要肛上了么。我电脑上 vim 打开 10G 的视频也没问题。其实 vim 打开音频比文本更快,二进制文件直接显示,UTF8 编码之类的还得多处理下。 @lilifenghao44 vi 我不知道啥样,vim 一直是增量处理的(我从 7 开始用的) |
35 we3613040 2017-05-09 18:30:11 +08:00 grep |
36 sola97 2017-05-09 21:15:57 +08:00 你的电脑不会连空闲的 2.5G 的内存都没有吧 |
37 refraction 2017-05-09 22:13:52 +08:00 |
38 ivyliner 2017-05-10 09:19:01 +08:00 grep , 25G 都搞过 :-) |
39 components 2017-05-10 10:01:19 +08:00 用 fopen? |
40 livem 2021-01-08 14:43:09 +08:00 less 就可以了,不知道 less 有没有最大文件的上限 |