如何让 hexdump 不等待来自标准输入的 16 个字符来显示它们的十六进制值?

use*_*851 9 linux terminal hexdump

如果我hexdump在终端中没有任何参数地打开:

hexdump
Run Code Online (Sandbox Code Playgroud)

当我在终端中输入内容并按 时Enterhexdump将显示我输入的任何字符的十六进制值。

hexdump如果我输入 16 个字符,则只会显示十六进制值,例如:

在此处输入图片说明

在这里,我输入了a15 次字符并按下Enter(因此hexdump收到了 16 个字符 (15 a+ \n))。

但是如果我输入的字符少于 16 个,例如:

在此处输入图片说明

在这里,我输入了a14 次字符并按下Enter(因此hexdump收到了 15 个字符 (14 a+ \n))。而在这种情况下hexdump没有显示任何东西。

我可以hexdump显示接收到的任何字符长度的十六进制值,而不是等待接收 16 个字符吗?

注意:我不想“使用 hexdump 和 xxd 的选项以每行十六进制显示一个字节”(如此处的评论中所建议)。我想要做的基本上是例如知道 A 的十六进制值是什么,而不必输入额外的 15 个字符来获取它。

dir*_*rkt 3

尝试hexdump -v -e '/1 "%02X\n"'。每行显示一个十六进制字节,因此行输出缓冲不会阻止该行的显示。

然后,您只需键入 A 并 return 即可知道 A 的十六进制值。您仍然需要键入 return,因为 shell 缓冲区还对输入进行行缓冲。

man ascii也有效。:-)