如何抑制二进制文件匹配结果在grep

当在linux中使用grep时,结果通常包含很多“二进制文件XXX匹配”,我并不关心这些。如何抑制这部分结果,或如何排除grep中的二进制文件?

145275 次浏览

有三个选项,你可以使用。-I是排除grep中的二进制文件。其他用于行号和文件名。

grep -I -n -H




-I -- process a binary file as if it did not contain matching data;
-n -- prefix each line of output with the 1-based line number within its input file
-H -- print the file name for each match

这可能是运行grep的一种方式:

grep -InH your-word *

这是一个老问题,它已经被回答了,但我想我把——binary-files=text选项放在这里,供任何想使用它的人使用。-I选项忽略二进制文件,但如果你想让grep将二进制文件视为文本文件,请使用——binary-files=text,如下所示:

bash$ grep -i reset mediaLog*
Binary file mediaLog_dc1.txt matches
bash$ grep --binary-files=text -i reset mediaLog*
mediaLog_dc1.txt:2016-06-29 15:46:02,470 - Media [uploadChunk  ,315] - ERROR - ('Connection aborted.', error(104, 'Connection reset by peer'))
mediaLog_dc1.txt:ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))
bash$