linux hexdump显示格式c数组,linux – 在命令行上实现类似hexdump的格式,包括二进制字符串?...

我真的很喜欢hexdump,特别是因为你可以定义一个自定义格式;说:

$echo -e '\x00\x01\x02\x03' | hexdump -v -e '1/1 "%_ad: "' -e '4/1 "%02X "' -e '1/1 " : "' -e '4/1 "%_p"' -e '1/1 "\n"'

0: 00 01 02 03 : ....

4: 0A : .

所以,我可以选择每行4个字节,先写为十六进制,然后写成字符.但是,我在这里缺少的是一个“二进制字符串”(或“位串”)格式化字符;例如我想写一些像-e’4 / 1“?b”’在某个命令行中的某个地方,然后得到,例如:

0: 00 01 02 03 : 00000000 00000001 00000010 00000011 : ....

4: 0A : 00001010 : .

当然,那么可能必须指定字节顺序(如果应该格式化多于一个字节的组)等等……但无论如何,这种格式不存在,就我在hexdump中看到的那样手册.

所以我的问题是 – 我在Linux命令行上有什么替代方案,这样我就可以获得一个包含上述二进制字符串的格式化转储,但最大限度地保留了hexdump程序的可定制性(以字节为单位)分组)何时使用-e选项?

解决方法:

如果使用合适的转储选项使转储程序失败,您可以使用hexdump和xdd将所有内容拼凑在一起,然后使用paste连接输出.它不漂亮,但使用支持进程替换的shell(bash会这样做):

mkfifo fifo

echo -e '\x00\x01\x02\x03' |

tee fifo |

paste -d' ' \

输出:

0: 00 01 02 03 : 00000000 00000001 00000010 00000011 ....

4: 0A : 00001010 .

标签:hexdump,linux,command-line

来源: https://codeday.me/bug/20190810/1636649.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值