You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下如何处理script命令生成的日志文件,使其可被grep正常搜索?

解决script日志被grep识别为二进制文件的问题

我之前也碰到过一模一样的情况,明明用编辑器和more都能正常看的日志,grep却偏说它是二进制文件,真的挺闹心的!

为什么会出现这种情况?

script命令会完整记录终端的所有输出,包括那些你肉眼看不到的终端控制字符(比如颜色转义码、光标移动指令)。这些非ASCII的特殊字符,让grep判定它是二进制文件,尽管文本编辑器和more会自动解析忽略这些控制字符,让你看到正常的文本内容。

几种快速解决方法

  • 强制grep按文本处理:直接给grep加-a参数,它就会把文件当成纯文本搜索,不管里面有没有控制字符:
    grep -a -i error LOG_FILE
    
  • 清理现有日志的控制字符:用col命令过滤掉日志里的控制字符,生成一个干净的文本文件再搜索:
    # 清理日志到新文件
    col -b < LOG_FILE > CLEAN_LOG_FILE
    # 搜索干净的日志
    grep -i error CLEAN_LOG_FILE
    
  • 用strings提取可打印文本:strings命令会提取文件中所有可打印的文本字符串,再配合grep搜索:
    strings LOG_FILE | grep -i error
    

内容的提问来源于stack exchange,提问作者JB_User

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 17:14:05