Linux less 大文件

背景

现有 80+G 大文件,为时间顺序的日志内容,现需查询该文件是否包含某字符串,大概在文件中间位置,直接 grep / sed 均会导致 io util 飙升至 100%。

方案

可取方案

文件为时间顺序,且知道待查询字符串在的大概时间范围,可以将该时间范围的内容导出至新文件,再 grep 新文件

变种方案

可以不导出至新文件,而是在下面的 步骤 6 处键入 less,直接在 mark amark b 之间搜索

废弃方案

grep

直接 grep 导致 io util 过高

sed

根据行号 sed 中间部分内容,也会导致 io util 过高

head + tail

待查询字符串大概在中间位置,不便 head + tail

步骤

  1. less 文件
  2. 使用 40p 跳到 40% 位置,(如果文件过大取消计算行号后,下同)按 m 再按 a 打 a 标记
  3. 使用 45p 跳到 45% 位置,(如果文件过大取消计算行号后,下同)按 m 再按 bb 标记
  4. 从标记 b 跳转到标记 a,按 ' 英文单引号加 a
  5. 开始把中间部分写到新文件,先按竖线 |,然后出现 markb
  6. 开始写文件,输入 dd of=/tmp/test.txt
  7. 稍等,完成,/tmp/test.txt 就是中间部分内容了
  8. grep xxx /tmp/test.txt

注:上面 40% / 45% 是因为要查的数据在这个范围内,a / b mark 是随意取的名称

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值