有没有办法将文件的二进制内容显示为零和一?
因此,不要像这样:
DE AD BE EF
我们可以得到这样的输出:
11011110 10101101 10111110 11101111
有没有办法通过基本的命令行程序/开关来做到这一点?
答案1
为什么不使用xxd
? 使用方式如下:xxd -b file
例如,执行 axxd -b google-chrome-stable_current_i386.deb | head
可得到:
0000000: 00100001 00111100 01100001 01110010 01100011 01101000 !<arch
0000006: 00111110 00001010 01100100 01100101 01100010 01101001 >.debi
000000c: 01100001 01101110 00101101 01100010 01101001 01101110 an-bin
0000012: 01100001 01110010 01111001 00100000 00100000 00100000 ary
0000018: 00110001 00110100 00110000 00111001 00110111 00111001 140979
000001e: 00110001 00111000 00110001 00110101 00100000 00100000 1815
0000024: 00110000 00100000 00100000 00100000 00100000 00100000 0
000002a: 00110000 00100000 00100000 00100000 00100000 00100000 0
0000030: 00110001 00110000 00110000 00110110 00110100 00110100 100644
0000036: 00100000 00100000 00110100 00100000 00100000 00100000 4
如果需要,您可以按照以下cut
步骤截断最左边的列和最右边的列xxd -b google-chrome-stable_current_i386.deb | head | cut -b10-62
:
00100001 00111100 01100001 01110010 01100011 01101000
00111110 00001010 01100100 01100101 01100010 01101001
01100001 01101110 00101101 01100010 01101001 01101110
01100001 01110010 01111001 00100000 00100000 00100000
00110001 00110100 00110000 00111001 00110111 00111001
00110001 00111000 00110001 00110101 00100000 00100000
00110000 00100000 00100000 00100000 00100000 00100000
00110000 00100000 00100000 00100000 00100000 00100000
00110001 00110000 00110000 00110110 00110100 00110100
答案2
如果我们有十六进制转储,并且根据问题中给出的示例,可能的解决方案如下所示:
echo DE AD BE EF | xxd -r -p | xxd -b
在哪里
echo DE AD BE EF
输入示例数据(可以保留空格)
xxd -r -p
将十六进制转储转换为原始字节
xxd -b
将原始字节转换为二进制转储
输出:
00000000: 11011110 10101101 10111110 11101111 ....