问一下各位大神,现在有个日志文件的大小为 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
whwq2012 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 1
不要太担心 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 2
“现在主要担心的是,用命令打开整个文件,根本打不开”
没有恶意,楼主你是 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 有没有最大文件的上限
|