我正在调试通过TCP传输数据的程序的输出。 为了调试目的,我把它换成接收程序与netcat
和hexdump
:壳魔法想要的:在管道中输出hexdump的格式
netcat -l -p 1234 | hexdump -C
输出的所有数据作为一个很好hexdump都可以,就像我想要的。现在的数据被以固定的块,其长度不是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
来获得线条间变化的高亮显示,那将是非常好的选择。
六角部分就足够了。 – grimmig 2011-05-12 07:50:28
您是否阅读过关于hexdump手册页上所有格式选项的内容?它看起来像你应该能够轻松地做你想要的... – 2011-05-12 07:57:00
我为你添加了“perl”标签,这些人可能会吃掉这个,你有Perl踢,对吧? – 2011-05-12 07:57:43