Home  >  Article  >  Backend Development  >  php exec()某个shell结果失误,原因是php中的 grep只能处理文本流,二进制流不行

php exec()某个shell结果失误,原因是php中的 grep只能处理文本流,二进制流不行

WBOY
WBOYOriginal
2016-06-13 12:52:03810browse

php exec()某个shell结果出错,原因是php中的 grep只能处理文本流,二进制流不行

 cat aa.txt | grep   'startup' |wc-l

在linux命令行下测试没有问题。但是在php的exec的就出现问题了,很奇怪。

结果报错:

报错提示如下:cat: write error: Broken pipe



废了好大劲,查了好多资料,终于解决。

grep的选项增加-a选项就ok了


grep -a选项的意思是:Process a binary file as if it were text; this is equivalent to the --binary-files=text option

应该是cat的这个文件内容有二进制流,导致grep不识别 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn