日志文件被识别为二进制文件

背景

一个使用 Google glog 日志系统的项目,当我使用 grep '3531527' ./output/be/log/be.INFO 想查找特定内容时却得到了 Binary file ./output/be/log/be.INFO matches 这个结果。就在昨天也使用过类似命令查找日志中的特定内容,这个问题是今天才出现的。

如何解决

学习

把问题扔给 DeepSeek。

可以通过 file ./output/be/log/be.INFO 检查文件类型。

符号链接并不会使得 grep 将文件识别为二进制文件。

DeepSeek 给出了如下原因

  1. 文件中包含特殊控制字符或非打印字符
  2. 超长行
  3. 文件编码或换行符问题

实操

感觉文件编码或换行符问题不太可能。

使用 fold -w 200 来处理超长行。

看起来被识别为二进制文件的原因不是超长行。

那大概就是 Google glog 在日志中嵌入了二进制数据。

使用 -a 或者 --text 来强制 grep 以文本模式处理文件

posted @ 2025-04-19 16:23  yu__xuan  阅读(23)  评论(0)    收藏  举报