为了账号安全,请及时绑定邮箱和手机立即绑定

对于cat grep这类linux命令,如果操作一个大文件 会不会占用很大的内存?

对于cat grep这类linux命令,如果操作一个大文件 会不会占用很大的内存?

忽然笑 2023-04-15 17:13:01
下午的时候有个同学问:他们服务器有一个5G的日志文件,如何从中截取出10.5-11.18的日志另一个文件日志文件有规范的时期格式,类似于web服务器日志。
查看完整描述

2 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

用sed好了,sed是按行处理的,不会将整个文件加载到内存中,可以放心使用
要切出从2012-02-09到2012-09-10的所有数据行,(假设你的日志文件以yyyy-MM-dd的日期格式开头)只需要:

sed -n '/^2012-02-09/,/^2012-09-10/p' whole.log > part.log


查看完整回答
反对 回复 2023-04-19
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

无论怎么样你都必须使用某一个程序把这个文件读出来,并且用一定的规则来加以过滤。在Linux中,使用cat和grep对文件进行操作已经可以说是最经济合理的了。占用一定的系统资源是肯定的,具体的话跟你使用的cat,grep以及linux内核都有一定关系,所以可能会略有不同。一般不要在系统里出现那么大的日志文件,最好在一开始就做好日志的大小限制以及合理的日志转储和备份。

查看完整回答
反对 回复 2023-04-19
  • 2 回答
  • 0 关注
  • 629 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信