回答:
ではGNU grepのは、使用することができます-a、それはテキストファイルとしてバイナリファイルを扱う作るためのオプションを:
grep -ali -- string file
お使いのgrepバージョンがをサポートしていない場合は、代わりにack-aを使用できます。ack 1.xでは、オプションを含める必要がありますが、ack 2.xでは、デフォルトで非テキストファイルを含む検索を行う必要があります(ファイルを指定しなかった場合は、非テキストファイルのみを無視します)。-a
ack grep /bin/grepと、結果が得られます。混乱を防ぐために回答を更新しました。
このコマンドstringsは、ファイルからすべてのASCIIデータを抽出します。grepその出力を使用すると、データを検索できます。
strings <filename> | grep "search text"
strings -fすることなので、より適切です。
ackの自己説明を読み間違えていますか?(マニュアルで)「ack 2.xは、明示的に無視されないすべての通常の非バイナリファイルを検索します[by blah blah]」ですから、ack 2.xは、コンテンツが見える場合、ファイルの読み取りを早期に停止するようです。バイナリ。