内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

grep文本文件提示“匹配到二进制文件”

2018-01-12 16:58 出处:清屏网 人气: 评论(0

今天用grep查log遇到了一件哔了狗的事。

我用vim打开log文件,里面有sysTid=3800这一行。但是grep "sysTid=3800" filename竟然找不到!

然后我grep "sysTid=xxxxx" xxxxx是另外一个数字,可以找到。。。另外如果用egrep "*sysTid.*3800*"也可以找到。。。简直哔了狗好吗!

一开始以为我是不是正则表达式用错了,是不是=要转义才行。但怎么查都不需要,而且加了\也一样不行。

后来注意到,搜索并不是完全没有结果,而是提示匹配到二进制文件。难道实际上已经匹配了,但grep认为是二进制文件?

于是去谷歌搜egrep match binary file,果然grep如果碰到\000 NUL字符,就会认为文件是二进制文件。必须加上-a或--text选项强制让grep认为是文本文件才可以看到正常的结果。

问题本身是解决了,但本质还没有完全搞清楚:为什么搜索其它的字符串不会有这个提示?为什么egrep "*sysTid.*3800*"也不会有这个提示?

让人费解的grep机制。。

分享给小伙伴们:
本文标签: grep

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号