• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バイナリファイルのdiff方法について)

バイナリファイルのdiff方法について

このQ&Aのポイント
  • Linuxのdiffコマンドを使用してバイナリファイルの差分をヘキサで表示する方法について教えてください。
  • バイナリファイルの差分をヘキサで表示するためには、odコマンドを使ってバイナリファイルを16進数で表示し、diffコマンドを使って二つの表示結果を比較します。
  • 具体的な手順としては、まずodコマンドを使って元のバイナリファイルを16進数で表示し、別のファイルに保存します。その後、保存された二つのファイルをdiffコマンドを使って比較し、差分をヘキサで表示することができます。

質問者が選んだベストアンサー

  • ベストアンサー
noname#223623
noname#223623
回答No.2

質問文の「トライしてみてうまくいかなかった例」の(1)を手直し。()の前後にある空白に注意してください。  ~$ lsb_release -d  Description: Ubuntu 10.04.4 LTS  ~$ echo $SHELL  /bin/bash  $ diff <(od -x sample.png) <(od -x sample-other.png)  6,7c6,7  < 0000120 0001 9c9a 0018 0000 7407 4d49 0745 05dc  < 0000140 0a12 2303 051f f7c1 0000 1900 4574 7458  ---  > 0000120 0001 9c9a 0018 0000 7407 4d49 0745 06dc  > 0000140 0704 3213 7d05 9412 0000 1900 4574 7458  9c9  < 0000200 6977 6874 4720 4d49 5750 0e81 0017 2000  ---  > 0000200 6977 6874 6720 6d69 6170 e314 00a3 2000 もう少しわかりやすく、空白を^で表すとこうなります。  $ diff^<(od^-x^sample.png)^<(od^-x^sample-other.png) bash 以外に zsh もできるみたいだけど、他のシェルはよく知りません。

参考URL:
http://d.hatena.ne.jp/hogem/20090530/1243612485
alp_tomy
質問者

お礼

masa_pee様 正常に出力できることが確認できました!! ありがとうございました。 (当方の環境はデフォルトがbashでないため、そのままだと  【Missing name for redirect.】のエラーになりますが、  先にbashコマンドを実行後、  ご教示頂いた以下のコマンドで成功しました) diff^<(od^-x^sample.png)^<(od^-x^sample-other.png)

alp_tomy
質問者

補足

masa_pee様 期待していたご回答ありがとうございます!!! 今実環境がないので確認できませんが、 明日確認次第、BAさせて頂きますo(^-^)o

その他の回答 (1)

  • m6324m
  • ベストアンサー率34% (26/76)
回答No.1

バイナリファイルだったらdiff じゃなく bsdiff がいいのでは、 > bsdiff AAA.bin BBB.bin AB.pat AAA.bin と BBB.bin を比較して AB.pat に出力したのち AB.pat をヘキサ出力してみてら。

alp_tomy
質問者

お礼

m6324m様 早速のご回答ありがとうございました。 こちらのご提示が漏れておりましたが 今回『bsdiff』や『xdelta』などが使用できません…(T_T) (他社様の環境のため…) 誠に申し訳ございませんが、 od/diffでお知恵を拝借できないでしょうか?

関連するQ&A