gpt4 book ai didi

perl - shell 魔法通缉: format output of hexdump in a pipe

转载 作者:行者123 更新时间:2023-12-02 16:06:55 25 4
gpt4 key购买 nike

我正在调试通过 TCP 传输数据的程序的输出。出于调试目的,我用 netcathexdump 替换了接收程序:

netcat -l -p 1234 | hexdump -C

它将所有数据输出为一个漂亮的十六进制转储,几乎就像我想要的那样。现在,数据以固定 block 的形式传输,其长度不是 16 的倍数,导致输出中的行发生移位,从而使发现差异变得有点困难:

00000000  50 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |P...............|
00000010 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |.P..............|
00000020 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 |..P.............|

如何重新格式化输出,以便在 17 个字节后开始新行?它应该看起来像这样:

50 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |P...............|
00 |. |
50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |P...............|
00 |. |
50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |P...............|
00 |. |

使用 hexdumps -n 参数不起作用,因为它会在达到字节数后退出。 (除非有办法保持 netcat 程序运行并将下一个字节无缝管道传输到新的 hexdump 实例)。

如果我可以在输出上使用 watch -d 来突出显示行之间的更改,那就太好了。

最佳答案

对于没有字符部分的十六进制转储。

hexdump -e '16/1 "%0.2x ""\n"1/1 "%0.2x ""\n"'

关于perl - shell 魔法通缉: format output of hexdump in a pipe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5974607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com