这个问题已经在这里有一个答案:
- 如何创建一个只包含十六进制字符没有在bash空格的文件的十六进制转储? 5个回答
下面转换十进制为十六进制在UNIX shell脚本
我想仅打印hex values
从hexdump
,就是不打印的行数和ASCII表。
但是,下面的命令行不打印任何东西:
hexdump -n 50 -Cs 10 file.bin | awk '{for(i=NF-17; i>2; --i) print $i}'
这个问题已经在这里有一个答案:
下面转换十进制为十六进制在UNIX shell脚本
我想仅打印hex values
从hexdump
,就是不打印的行数和ASCII表。
但是,下面的命令行不打印任何东西:
hexdump -n 50 -Cs 10 file.bin | awk '{for(i=NF-17; i>2; --i) print $i}'
您可以指定你想要的确切格式hexdump
使用输出,但它是一个有点棘手。 下面是默认的输出,减去文件偏移:
hexdump -e '16/1 "%02x " "\n"' file.bin
(对我来说,它看起来像这将在每行的末尾产生一个额外的尾随的空间,但由于某些原因,它没有。)
使用xxd
是这个工作做得更好:
xxd -p -l 50 -seek 10 file.bin
从man xxd
:
xxd - make a hexdump or do the reverse.
-p | -ps | -postscript | -plain
output in postscript continuous hexdump style. Also known as plain hexdump style.
-l len | -len len
stop after writing <len> octets.
-seek offset
When used after -r: revert with <offset> added to file positions found in hexdump.
作为替代,可以考虑使用xxd -p file.bin
。
首先,除去-C
其被发射的ASCII信息。
然后,你可以放弃与偏移
hexdump -n 50 -s 10 file.bin | cut -c 9-