バイナリファイルの一部のデータの表示と削除

バイナリファイルの一部のデータの表示と削除

バイナリファイルから部分バイナリデータを削除するには? (16進ダンプ)。 GHex 3.18.0バイナリエディタを試してみましたが、これには適していません。単純な機能も欠けています。たとえば、オフセットアドレス範囲0x83FFF0 - 0xDDAFEBを選択してブロック全体を削除する必要があります(実際には0x83FFF0からファイルの終わりまでの部分を削除します)。

とにかくバイナリコンテンツを見なければならないので、GUIツールを好みます。ただし、最初にGUIエディタを使用してアドレスを見つけてから、いくつかのスクリプトコマンドを使用してファイルを変更できます。 (たぶんbbe命令ですか?)

答え1

以下でこれを行うことができます。Emacs、プリインストールされていない場合は、ほとんどのUnixシステムでパッケージとして使用できます。内蔵ヘックスビューアは削除をサポートしていませんが、改善されたヘックスビューアNhexlモードする。

Emacsでファイルを開き、と入力しますAlt+x nhexl-mode Enter。 「一致しない」と表示された場合は、Ctrl+gnhexl-modeと入力してインストールしてからやり直してください。 nhexl-modeをインストールする最も簡単な方法はEmacsパッケージを使用することです。 [オプション]メニューから[Emacsパッケージの管理]を選択し、[nhexl-mode]を選択して[インストール]をクリックするか、を入力しますAlt+x package-install Enter nhexl-mode Enter

nhexlモードで削除したい領域の先頭に移動し、キーを押しますCtrl+Space。その領域の終わりに移動してを押しますDelete。変更に満足したらファイルを保存します。

Emacsは大容量ファイルには適していませんが、数十MB程度は問題ありません。

答え2

ファイルの最初の部分だけが必要な場合は、コマンドラインで次の行を使用してください。

head --bytes=8650736 Original > Truncated

(ここで83FFF0 16進数 は明らかに8650736 10進数です)

使用する場合簡単なコマンドライン電卓それは次のようになります:

head --bytes=$(c "ibase=16; 83FFF0") Original > Truncated

関連情報