シェル用の16進エディターを推奨してください


回答:


24

emacs 16進編集用のhexlモードがあります。


4
hexl-modeは、ファイル全体をemacsバッファーにロードするため、大きなファイルやディスクパーティションには適していません。すでにemacsに慣れている場合、小さなファイルに最適です。
ピーターコーデス

1
@PeterCordes、ディスクを編集するために、単にddファイルに編集したい領域をemacsで開き、それを元ddに戻します。
psusi

6
@psusi問題は、ファイルを編集するためにその努力に行く必要はないはずです
コールジョンソン

1
@ColeJohnson、ファイルの編集については話していません。生のハードディスク全体の編集について話している。
psusi

2
@psusi Windowsマシンでは、HxDを使用して、他のファイルと同じようにディスクを開くことができます。
コールジョンソン

76
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は必要ありません。このアプローチの最大の利点は、簡単にスクリプト化できることです。


2
xxdはデフォルトでUbuntu 16.04にインストールされているようです。これはSWEETです。ありがとう!
グレンペターソン

MacOSでもデフォルトで利用可能です!
thom_nic

34

DHEXもあります

apt-cache show dhex

diffモードを備えたncursesベースの16進エディタ

これは単なる16進エディタではありません。2つのバイナリファイルを簡単かつ便利に比較するために使用できるdiffモードが含まれています。これはncursesに基づいており、テーマ化可能であるため、任意の数のシステムおよびシナリオで実行できます。検索ログを利用することで、ファイルのさまざまな反復の変更を簡単に追跡できます。

vimやemacsに慣れていない場合、これには学習曲線があまりないようです。


3
dhex imhoの欠点は、バイトを挿入/削除できないことだけです。それ以外の場合、非常に優れたコンソール16進エディタです。
ニチョリ

「dhex / path / to / big / file」を実行すると、「opening inputfile / path / to / big / file」というエラーが表示されます。私はdhexが好きで、通常のサイズのファイルには常に使用しています。
sondra.kinsey

@ sondra.kinsey:8GB RAMマシンで20GBファイルを試したところ、問題はありませんでした。これはUbuntu 16.04 64ビットで、dhex 0.68-2build1(amd64)です。それで動作するはずです。
mivk

@ mivk、3GB RAMのUbuntu 17.04でdhex_0.68-2build1_i386を使用して44GBファイルでdhexを試してみましたが失敗しました。hexeditとwxHexEditorは、文句なしに同じファイルを開きます。
-sondra.kinsey

@ sondra.kinsey:32ビット版のdhexと4GBを超えるファイルの問題/バグでしょうか?
-mivk

26

vi / vimを16進エディタとして使用することもできます(xxdを呼び出すことができます)。

16進モードに入ります:

:%!xxd

16進モードを終了します。

:%!xxd -r

ソース:viを16進エディターとして使用


1
私はそれに注意します。:%!xxdファイルに新しい文字(つまり、改行)を追加しました。
クアジイルファン

1
@iamcreasyこれはxxd誰がやるのではなく、むしろVim自身です。
ルスラン

3
忘れないで:set binary!そうしないと、VIMはファイルの末尾に行末(CR / LF / CRLF)を追加することでファイルを破損する可能性があります(フォーマットを(set ff=[mac/unix/dos])に設定したものに応じて)。これにより、実行可能ファイルとデータバイナリが破損する可能性が高くなります。そしてそれは。たくさん。VIMがバイナリモードであることを確認すると、それが発生しなくなります。
ブレーデンベスト

8

これは古い質問であることは知っていますが、ここでの答えはすべて不満でした。独自のバイナリファイル(別名挿入モード)を作成し、非常に大きなファイルを処理できる16進エディタを探していました。

私はこれらの要件とOPの両方を満たすtweakに出会いました。

  • Tweakは挿入モードをサポートしています(実行可能ファイルまたはファイルシステムイメージを編集している場合は特に便利ではありませんが、PNGなどの他のファイル形式では非常に便利です)。
  • 編集中のファイル内での切り取り、コピー、貼り付けは非常に効率的です。移動するデータのチャンクがどれほど大きくても(たとえCDイメージの200Mbセクションであっても)、Tweakは常に効果的に即座に操作を実行します。
  • Tweakは、入力ファイルの遅延読み込みをサポートしています:すべてをすぐにメモリに吸い込むのではなく、編集バッファーのどの部分が入力ファイルのどの部分のコピーであるかを単に覚えており、必要なときにディスク上のファイルを参照します。Tweakは、ファイル全体を読み取るために本当に必要な場合にのみ、かなりの時間をかける必要があります。このプロパティを使用する2つの操作は、検索と、ファイルの変更バージョンのディスクへの保存のみです。それ以外はすべて瞬時です。

うーん、間違ったキーストロークごとにバッファーを変更する準備ができており、ユーザーにプログラムの使用方法(または終了!)を指示しないプログラム。うん!"exit"コマンドはemacsと同じであることが判明しました...しかし、それは私にとって初めては機能しませんでした。何十年も前にemacsをあきらめましたが、最も重要なコマンドであるCtrl-X、Ctrl-Cを思い出してください。emacsが好きなら、好きかもしれませんtweakが、私にとっては厄介でした。本当に編集が必要な場合は、もう一度試してください。man tweakターミナルから実行して、コマンドの概要とリストを確認してください。
ランバート

@Lambart tweakの挿入モードの重要なポイントは、バッファーを変更することです。そのため、ここでのポイントは実際には有効ではありません。また、とにかくそれを使用する前に、manページを読む必要があります。そうしないと、終了方法を教えてくれないと不平を言うのは怠け者です。
Gogeta70

4

Bless Hex Editorはバイナリ(hex)エディターであり、現在次の機能を提供します。

  • 大きなデータファイルとブロックデバイスの効率的な編集。
  • マルチレベルの元に戻す-操作をやり直します。
  • カスタマイズ可能なデータビュー。
  • 画面上の高速データレンダリング。
  • 複数のタブ。
  • 高速な検索および置換操作。
  • データ変換テーブル。
  • 高度なコピー/貼り付け機能。
  • ファイル内の一致する選択パターンの強調表示。
  • プラグインベースのアーキテクチャ。
  • データをテキストおよびhtml(プラグインを持つその他)にエクスポートします。
  • データのビット演算。
  • 包括的なユーザーマニュアル。

あなたはここからそれをdounloadすることができます:http://packages.debian.org/sid/all/bless/downloadを

インストールするには、コマンドラインから.debファイルをインストールする方法をご覧ください

もっといります?


10
質問はコマンドラインエディターを求めています。
-psusi

1
@psusiいいえ、OPはshell / terminal はなくshellから実行できる16進エディタについて尋ねまし。インストール後にコマンドを使用してシェルから実行できます。 bless
ラドゥラデアヌ

33
シェルから実行できないものは何もありません。彼はコマンドラインを意味しない限り、彼はそれについて言及しなかったでしょう。
-psusi

実際、私はウィンドウベースのビューアを意味する「ubuntu hex viewer」を検索していましたが、検索サイトが私をここに連れてきました。だからこの答えは私が探していたものでした。
kinORnirvana

2

hexedを試してみてください。スクリプトとmakeファイルで使用するために作られています。



2

もありhtます。としてインストール

sudo apt-get install ht

を入力して実行しますhte

ただし、実際に大きなファイル/パーティションで試したことはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.