如何在bash中创build一个只包含hex字符而不含空格的hex转储文件?

如何在Linux中使用bash创build二进制文件的未修改hex转储? odhexdump命令都在转储中插入空格,这并不理想。

有没有办法简单地写一个长string的所有hex字符,在输出中减去空格或换行符?

xxd -p file

或者如果你想把它全部放在一行上:

xxd -p file | tr -d '\n'

格式化string可以使hexdump的行为完全按照您所希望的方式运行(根本没有空白字节):

 hexdump -ve '1/1 "%.2x"' 

1/1表示“每个格式应用一次,占用一个字节”, "%.2x"是实际的格式string,就像在printf中一样。 在这种情况下:2个字符的hex数字,如果更短则前导零。

这似乎取决于od的版本的细节。 在OSX上,使用这个:

 od -t x1 -An file |tr -d '\n ' 

(这是打印的typeshex字节,没有地址,当然删除了空白。)

Perl一行:

 perl -e 'local $/; print unpack "H*", <>' file 

其他答案是可取的,但对于纯Bash解决scheme,我已经修改了我的答案中的脚本,以便能够输出代表文件内容的连续hex字符stream。 (它的正常模式是模拟hexdump -C 。)