web-dev-qa-db-ja.com

バイナリファイルの一致を抑制してgrepを実行する方法

Linuxでgrepを使用する場合、結果には常に「バイナリファイルXXX一致」が含まれますが、これについては気にしません。結果のこの部分を抑制する方法、またはgrepでバイナリファイルを除外する方法

161
RandyTek

使用できるオプションは3つあります。 -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 *
231
Sergei Kurenkov

これは古い質問であり、回答がありましたが、使用したい人のために--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$
8
amadain