grep 遇到二进制文件就跳过
在日志目录里 grep error *,某些文件只回一句 Binary file xxx matches,看不到上下文。
因为文件里混进了非文本字节(NUL、非法 UTF-8),grep 判定为二进制,默认只报告匹配、不输出内容。
几个开关:
grep -a:把文件当文本处理,最常用。grep -I:反向——跳过二进制文件(大写 i)。grep --text:同-a。
日志里出现 NUL 通常是程序写入了错误的内容,值得查一下来源,而不是只用 -a 掩盖。
rg 默认也会跳过二进制,用 rg -a。批量处理时先 file * 看类型,比一个个试快。