grep
このフラグの説明のマンページは-I
次のとおりです。
-I Ignore binary files. This option is equivalent to
--binary-file=without-match option.
また、バイナリについては次のように言います。
--binary-files=value Controls searching and printing of binary files.
Options are binary, the default: search binary files but do not print
them; without-match: do not search binary files; and text: treat all
files as text.
バイナリファイルで一致するものに興味がある状況は想像できません。そのような状況が存在する場合、これは規則ではなく、確かに例外です。このフラグを設定せず、デフォルトでgrep
バイナリを無視しないのはなぜですか?
答え1
grepが考えているのはバイナリファイルではありませんが、実際にはそうです。たとえば、PuppetのログにはANSIカラーコーディングがあるので、grepはこれをバイナリだと思います。 /var/log を見ている場合でも、まだその項目を検索したいと思います。
答え2
grep
ld
バイナリを検索する機能は、プログラムをコンパイルするときにリンカ()がいくつかの機能を見つけることができないと文句を言うときにも役立ちます。次のコマンドを使用できます。
grep機能名/lib/lib*
その内容を含むライブラリを見つけます。 (ライブラリはバイナリです。)
答え3
バイナリファイルまたはgrepがバイナリファイルと見なすファイルを処理するには、次のようにします。
grep --binary-files=text "data" f1 f2