为什么grep返回部分匹配列表,然后退出,而将文件的其余部分视为二进制文件?

时间:2019-07-31 16:25:50

标签: grep

我有一个比较大的文件(24M,17.3万行),正在为一个字符串(“ SIM_ANALYTICS”)抓取一个文件。正确找到前23条匹配行后,它将报告“二进制文件匹配”并在此结束。如果我使用“ grep -a --text”,则可以正常工作,找到91条匹配的行。

由于某种原因,grep开始将文件解释为文本文件并找到前23个。然后似乎切换了模式并认为它是二进制文件并退出了(除非我使用-a --text)。

我可以将文件保存到STDOUT,看起来不错。

一个简单的perl脚本确认使用grep -a --text找到的行返回正确的行(其中91行)。

我正在处理的代码通过反引号grep并将该输出发送到数组来对该字符串进行处理。它不查找“二进制文件...匹配项”。所以现在我觉得这是不可靠的。 grep似乎是不可靠的(从来没有想过我会说那样的话!)

除了“总是使用-a --text”之外,还有什么想法吗?

0 个答案:

没有答案