シェルから実行できる16進エディターを推奨できますか?コンテンツを表示するだけでなく、編集できる必要があります。
emacs
には、16進編集用のhexlモードがあります。
xxd
このツールは、このタイプのタスク用に見つけた最も一般的なものです(最新のUbuntuとmacOSの両方でデフォルトで利用可能です)。必要に応じて、-p
を使用して右側のASCII読み取り可能部分を削除し、-r
関数を使用して元に戻す(ASCIIデータをバイナリデータに変更)ことができます。いくつかの簡単な使用例を次に示します。
ASCIIビューで16進数に変換:
echo example | xxd
Hexdumpへの変換(右側にASCIIビューなし):
echo example | xxd -p
Hexdumpからバイナリデータへの変換:
echo 746573740a | xxd -p -r
シェルスクリプトでこれを使用すると、さらに複雑になります。実際にこれと「dd」を使用して特定のシーケンスをスキャンし、bash、dd
、およびxxd
のみを使用して、シェルスクリプトからすべてを事前定義された方法で変更しました。特定の場所に「シーク」して必要なバイトシーケンスをその場所に書き込むことができるため、実際にはddは必要ありません。このアプローチの最大の利点は、簡単にスクリプト化できることです。
DHEX もあります
apt-cache show dhex
diffモードを備えたncursesベースの16進エディタ
これは単なる16進エディタではありません。2つのバイナリファイルを簡単かつ便利に比較するために使用できるdiffモードが含まれています。これはncursesに基づいており、テーマ設定可能であるため、任意の数のシステムおよびシナリオで実行できます。検索ログを利用することで、ファイルのさまざまな反復の変更を簡単に追跡できます。
Vimやemacsに慣れていない場合、これには学習曲線があまりないようです。
Vi/vimを16進エディタとして使用することもできます(xxdを呼び出すことができます)。
16進モードに入ります:
:%!xxd
16進モードを終了します。
:%!xxd -r
ソース: 16進エディタとしてviを使用
これは古い質問であることは知っていますが、ここでの答えはすべて不満でした。独自のバイナリファイル(別名挿入モード)を作成でき、非常に大きなファイルを処理できる16進エディタを探していました。
私は Tweak に出会いました。これは、これらの要件とOPの両方を満たします。
- Tweakは挿入モードをサポートしています(実行可能ファイルまたはファイルシステムイメージを編集している場合は特に有用ではありませんが、PNGなどの他のファイル形式では非常に便利です)。
- 編集中のファイル内での切り取り、コピー、貼り付けは非常に効率的です。移動するデータのチャンクがどれほど大きくても(たとえCDイメージの200MBセクションであっても)、Tweakは常に効果的に即座に操作を実行します。
- Tweakは、入力ファイルの遅延読み込みをサポートしています:すべてをすぐにメモリに吸い込むのではなく、編集バッファーのどの部分が入力ファイルのどの部分のコピーであるかを単に覚えており、必要なときにディスク上のファイルを参照します。 Tweakは、ファイル全体を読み取るために本当に必要な場合にのみ、かなりの時間をかける必要があります。このプロパティを使用する2つの操作は、検索と、ファイルの変更バージョンのディスクへの保存のみです。それ以外はすべて瞬時です。
Bless Hex Editor はバイナリ(16進数)エディターであり、現在次の機能を提供します。
ここからアンロードできます: http://packages.debian.org/sid/all/bless/download 。
インストールするには、 コマンドラインから.debファイルをインストールするにはどうすればよいですか? を参照してください。
もっといります?
これは非常に使いやすいです:
Sudo apt-get install hexcurse
hexed を試してください。スクリプトとmakeファイルで使用するために作成されています。
ht
もあります。としてインストール
Sudo apt-get install ht
hte
と入力して実行します。
ただし、実際に大きなファイル/パーティションで試したことはありません。