grepコマンドはテキストファイル中からパターンを検索しますが、このbgrepはバイナリファイル中からパターンを検索します。
ダウンロード : http://kane.daa.jp/old_blog/freesoft/bgrep1_4.zip
以下に、readme.txtを貼り付けます。
● bgrep version 1.4 について # 機 能 : バイナリファイル中からパターンを検索します。 # 種 別 : フリーソフト # 配布形態 : ソースコード、Windows用実行ファイル(32bit) # 動作確認OS : Windows(Windows XP 32bit)/ Linux(Ubuntu 64bit) # 作 者 : カネダック(widen関数以外) # 作者のページ : http://kane.daa.jp/old_blog/ ●謝辞&著作権 ソースコード中の widen関数は、以下のページから拝借しました。 感謝いたします。 http://ml.tietew.jp/cppll/cppll/article/4783 widen関数以外は、カネダックに著作権があります。 http://kane.daa.jp/old_blog/?p=5 ●ファイル説明 ・bgrep.exe : Windowsコマンドプロンプト用の実行ファイル(32bit) ・bgrep.cpp : C++ソースコード ●コンパイル例 ・Visual C++ cl bgrep.cpp /EHsc (Windows XP 32bit上で、Visual Studio 2010 & Boost-1.46.1でコンパイルできることを確認しました。) ・g++ g++ -o bgrep bgrep.cpp -std=c++0x -static -lboost_program_options -lboost_system (Ubuntu 64bit上で、gcc-4.5.2 & Boost-1.45.0でコンパイルできることを確認しました。) ●ソースコードのエンコードの種類 Shift-JISです。ソースの改行はCRLFです Ubuntuでコンパイルするなら、必要に応じてUTF-8に変換し、改行もLFに変換してください。 ●プログラム説明 端末(Unix)、またはコマンドプロンプト(Windows)で、 引数を与えずにコマンドを叩くと、以下のように使い方と使用例が表示されます。 Usage: bgrep [-swhlv] pattern file[s] Options: -s [ --string ] string search <default> -w [ --wstring ] wstring search -h [ --hex ] hex search -l [ --list ] list match files -v [ --verbose ] display messages Usage examples: (Unix) find . -type f -name '*' -print0 | xargs -0 bgrep pattern (Windows) dir /b /a-d /s * | xargs bgrep pattern ・-sオプション 与えられたパターンを、そのまま文字列として検索します(=デフォルト)。 空白を含む文字列を検索するときは、例えば Windowsコマンドプロンプトでは パターンをダブルクォーテーションで囲って、"Hello world" のように与えます。 ・-wオプション パターン文字列をワイド文字列に変換して検索します。 ・-hオプション パターンを16進文字列と解釈して検索します。 16進文字列は、例えば Windowsコマンドプロンプトではダブルクォーテーションで 囲って、"61 CC 62 EB 63 90" のように空白区切りで与えます。 ・使用例 引数を与えずにコマンドを叩くと、使用例(Usage examples)も表示されます。 この使用例は、ファイル名をワイルドカードで指定して、かつサブディレクトリの ファイルも検索する例です。 Unixの例は、findコマンドと xargsコマンドを、bgrepと組み合わせています。 Windowsの例は、findコマンドの代わりに dirを使用しています。 ただし、Windowsには xargsコマンドがないので、「Windows xargs」でググって Windows用の xargsを拾ってくるか、あるいは Cygwinを導入して Unixコマンドを 使用してください。 ●注意点 2Gバイト超のファイルからの検索には対応できていません。