hexdump
引数なしで端末を開くと:
hexdump
端末に何かを入力してキーを押すと、Enter
入力したhexdump
文字の16進値が表示されます。
ただし、hexdump
16文字を入力すると、16進値のみが表示されます。たとえば、次のようになります。
a
ここでは文字を15回入力して押しましたEnter
(だからhexdump
16文字が受信されました(15+ a
)\n
)。
ただし、たとえば、16文字未満を入力すると、次のようになります。
ここでは文字をa
14回入力して押しましたEnter
(それでhexdump
15文字が受信されました(14 a
+ \n
))。この場合、hexdump
何も表示されません。
hexdump
16文字が受信されるのを待つのではなく、受信した長さ文字の16進値を表示できますか?
ノート:したくない」xxdオプションと一緒にhexdumpを使用して、1行あたり1バイトを16進数で表示します。「(ここでのコメントで提案されているように)。私がしたいのは、基本的にAの16進値を得るために追加の15文字を入力せずに知ることです。
答え1
努力するhexdump -v -e '/1 "%02X\n"'
。 1行につき16進バイトが表示されるため、ライン出力バッファリングはライン表示を妨げません。
その後、Aと入力して戻り、Aの16進値を確認します。シェルバッファも入力を行バッファするため、まだreturnを入力する必要があります。
man ascii
また動作します。 :-)
答え2
同じ行のバッファリングされていないパック型16進ダンプをstdbufに作成できます。 Bashの例(一部の読み取りコマンドオプションのために必要です):
while read -s -n1 k; do printf $k; done | stdbuf -o0 hexdump -e '1/1 "%x"'