如何在bash中创build一个只包含hex字符而不含空格的hex转储文件?
如何在Linux中使用bash创build二进制文件的未修改hex转储? od
和hexdump
命令都在转储中插入空格,这并不理想。
有没有办法简单地写一个长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
。)