技术解析

询问: Linux 下大文件内容查找
0
1975-02-25 00:03:56
idczone

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


lnav 不过你可能需要自定义 formatter

。。。。。。。。。。。。。。。。。。
grep

linux 三剑客 awk sed grep

现在主要担心的是,用命令打开整个文件,根本打不开,肯定不能一次性全部读入内存吧,是不是存在某个命令,可以设定缓冲区

open/lseek/read == open/pread

大兄弟这发帖吞吞吐吐,大家只能高来高去的回你。估计你这求助要吃瘪了。。。

之前看到有个 V 友用 vim 打开了 1.5G 的日志文件,用了 17 秒,没记错的话,不过不知道能不能进行查询等相关操作

grep 等命令是一行一行读入的,慢是慢点,但不用担心内存爆掉。

awk 处理快

less,more,grep,sed.如果是看得话,就用 less 就够了

不要太担心 grep 这些上古工具的内存占用

才 2,5G 三剑客随便挑

“现在主要担心的是,用命令打开整个文件,根本打不开”
没有恶意,楼主你是 PHP 程序员么?

less 会吃内存,不要用。

我怀疑你是培训班出来的

瞎说什么大实话
用 grep、sed、awk 加点正则就行

个人习惯,grep 查进程什么的用的比较多,sed 和 awk 查文本比较多

数据单次利用还是重复利用,
若单次利用 grep 足以;
若须反复利用,建议将数据导入数据库,根据搜索的维度(如订单号)建立索引,根据业务复杂度选择关系型或者 NOSQL 数据库。

应该是 gedit/nano/notepad 程序猿吧

“现在主要担心的是,用命令打开整个文件,根本打不开” ,之前 vim 打开 3GB+的文件,没什么问题。
找内容上面已经说得很清楚了,awk, sed, grep。。。。

打开文件不是问题,文件再大,也是虚拟地址,只有访问的时候,会触发操作系统的页中断,

可以试试 silver searcher (ag)

那是没配置好。vim 应该能秒开的。不过用 vim 搜索还是算了吧。 可以用 ag/rg 搜到位置,记下偏移,然后用 vim 打开跳到那儿就是了

vim 能秒开?你试过?

我还没见过 vim 不能秒开的文件。不能秒开要么是哪儿出 bug 了,要么就是某插件要花很多时间 parse。给个大文件,我打开你瞅瞅

人家是 2.5 个 G,你电脑上有视频文件有 2G 以上的吧,打开个试试能不能秒开

less -n 日志文件 ,命令模式下 /搜索词 搜索.
这种应该可以搜索再问哦.
vi 应该是默认全部读入内存吧,难道现在有什么更新了.

懒得理你,也不想跟你废话,你如果懂,你就指导下,我会感谢你,不懂的话就不要说什么风凉话

如果不是非要在 Linux 命令下操作,你或许可以试试 Windows 下的这款日志查看工具 LogViewer Pro,可以满足你的需求。

grep -F 订单号 文件
说实话, 2.5G 不算大. -F 参数搜索很快的.

less/grep

less

我还以为谁写了一个上 T 的文件呢... 大失所望

大兄弟你这个是要肛上了么。我电脑上 vim 打开 10G 的视频也没问题。其实 vim 打开音频比文本更快,二进制文件直接显示,UTF8 编码之类的还得多处理下。
vi 我不知道啥样,vim 一直是增量处理的(我从 7 开始用的)

grep

你的电脑不会连空闲的 2.5G 的内存都没有吧

https://geoff.greer.fm/ag/

grep , 25G 都搞过 :-)

用 fopen?

less 就可以了,不知道 less 有没有最大文件的上限

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服