如何使用bash在Linux中创建二进制文件的未修改十六进制转储?在od与hexdump转储命令都插入空格,这是不理想的.
有没有办法简单地写一个长字符串,其中包含输出中的所有十六进制字符,减去空格或换行符?
mar*_*k4o 240
xxd -p file
或者如果你想要一条线:
xxd -p file | tr -d '\n'
Mic*_*bus 87
格式化字符串可以使hexdump完全按照您的意愿运行(完全没有空格,逐字节):
hexdump -ve '1/1 "%.2x"'
Run Code Online (Sandbox Code Playgroud)
1/1表示"每个格式应用一次并占用一个字节",并且"%.2x"是实际的格式字符串,如printf.在这种情况下:2个字符的十六进制数字,如果更短则前导零.
Don*_*ows 22
它似乎取决于版本的细节od.在OSX上,使用此:
od -t x1 -An file |tr -d '\n '
Run Code Online (Sandbox Code Playgroud)
(那是打印类型的十六进制字节,没有地址.当然,之后删除了空格.)