日志文件被识别为二进制文件
背景
一个使用 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
以文本模式处理文件