シェルから実行できる16進エディターを推奨できますか?コンテンツを表示するだけでなく、編集できる必要があります。
シェルから実行できる16進エディターを推奨できますか?コンテンツを表示するだけでなく、編集できる必要があります。
回答:
emacs
16進編集用のhexlモードがあります。
dd
ファイルに編集したい領域をemacsで開き、それを元dd
に戻します。
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は必要ありません。このアプローチの最大の利点は、簡単にスクリプト化できることです。
apt-cache show dhex
diffモードを備えたncursesベースの16進エディタ
これは単なる16進エディタではありません。2つのバイナリファイルを簡単かつ便利に比較するために使用できるdiffモードが含まれています。これはncursesに基づいており、テーマ化可能であるため、任意の数のシステムおよびシナリオで実行できます。検索ログを利用することで、ファイルのさまざまな反復の変更を簡単に追跡できます。
vimやemacsに慣れていない場合、これには学習曲線があまりないようです。
vi / vimを16進エディタとして使用することもできます(xxdを呼び出すことができます)。
16進モードに入ります:
:%!xxd
16進モードを終了します。
:%!xxd -r
ソース:viを16進エディターとして使用
:%!xxd
ファイルに新しい文字(つまり、改行)を追加しました。
xxd
誰がやるのではなく、むしろVim自身です。
:set binary
!そうしないと、VIMはファイルの末尾に行末(CR / LF / CRLF)を追加することでファイルを破損する可能性があります(フォーマットを(set ff=[mac/unix/dos]
)に設定したものに応じて)。これにより、実行可能ファイルとデータバイナリが破損する可能性が高くなります。そしてそれは。たくさん。VIMがバイナリモードであることを確認すると、それが発生しなくなります。
これは古い質問であることは知っていますが、ここでの答えはすべて不満でした。独自のバイナリファイル(別名挿入モード)を作成し、非常に大きなファイルを処理できる16進エディタを探していました。
私はこれらの要件とOPの両方を満たすtweakに出会いました。
- Tweakは挿入モードをサポートしています(実行可能ファイルまたはファイルシステムイメージを編集している場合は特に便利ではありませんが、PNGなどの他のファイル形式では非常に便利です)。
- 編集中のファイル内での切り取り、コピー、貼り付けは非常に効率的です。移動するデータのチャンクがどれほど大きくても(たとえCDイメージの200Mbセクションであっても)、Tweakは常に効果的に即座に操作を実行します。
- Tweakは、入力ファイルの遅延読み込みをサポートしています:すべてをすぐにメモリに吸い込むのではなく、編集バッファーのどの部分が入力ファイルのどの部分のコピーであるかを単に覚えており、必要なときにディスク上のファイルを参照します。Tweakは、ファイル全体を読み取るために本当に必要な場合にのみ、かなりの時間をかける必要があります。このプロパティを使用する2つの操作は、検索と、ファイルの変更バージョンのディスクへの保存のみです。それ以外はすべて瞬時です。
tweak
が、私にとっては厄介でした。本当に編集が必要な場合は、もう一度試してください。man tweak
ターミナルから実行して、コマンドの概要とリストを確認してください。
Bless Hex Editorはバイナリ(hex)エディターであり、現在次の機能を提供します。
あなたはここからそれをdounloadすることができます:http://packages.debian.org/sid/all/bless/downloadを。
インストールするには、コマンドラインから.debファイルをインストールする方法をご覧ください。
もっといります?
bless
これは非常に使いやすいです:
sudo apt-get install hexcurse