grepがファイルをバイナリとして扱うのはなぜですか?

grepがファイルをバイナリとして扱うのはなぜですか?

私のボックスには、Windowsシステムのいくつかのデータベースダンプがあります。テキストファイルです。私はそれらをgrepするためにcygwinを使用しています。このファイルはプレーンテキストファイルのようです。メモ帳やワードパッドなどのテキストエディタで開きましたが、きれいに見えました。しかし、grepを実行するとbinary file foo.txt matches

NUL私はこれらのファイルにデータベースダンプの成果物であると仮定するいくつかのASCII文字が含まれていることを発見しました。

それでは、grepがこれらのファイルがバイナリだと思うのはなぜですか?数値NUL?ファイルシステムにフラグがありますか? grepで行の一致を表示するには何を変更する必要がありますか?

ベストアンサー1

NULファイルに文字が含まれている場合、grepはそれをバイナリファイルとして扱います。

このような回避策があるかもしれませんcat file | tr -d '\000' | yourgrep。まず、すべてのNULL値を削除してからファイルを検索してください。

おすすめ記事