日志文件被识别为二进制文件
背景
一个使用 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 给出了如下原因
- 文件中包含特殊控制字符或非打印字符
- 超长行
- 文件编码或换行符问题
实操
感觉文件编码或换行符问题不太可能。
使用 fold -w 200 来处理超长行。

看起来被识别为二进制文件的原因不是超长行。
那大概就是 Google glog 在日志中嵌入了二进制数据。
使用 -a 或者 --text 来强制 grep 以文本模式处理文件


浙公网安备 33010602011771号