如何更改`hexdump`中打印的列数?

时间:2014-11-01 22:48:28

标签: bash hexdump

如何将hexdump中打印的列数从默认值16(更改为21)更改为

或者我可以在哪里找到更改 hexdump中使用的默认格式字符串以修改其中使用的数字的位置?

1 个答案:

答案 0 :(得分:6)

似乎可以获得默认格式:

hexdump -e '"%07.7_Ax\n"' -e '"%07.7_ax " 8/2 "%04x " "\n"'

来自man hexdump

 Implement the -x option:

       "%07.7_Ax\n"
       "%07.7_ax  " 8/2 "%04x " "\n"

如果您想了解hexdump的格式,您必须阅读手册,但这里只需要简单介绍以前的格式:

  • 第一部分%07.7_Ax\n是显示仅包含偏移量的最后一行的部分。根据手册:

     _a[dox]     Display the input offset, cumulative across input files, of the
                 next byte to be displayed.  The appended characters d, o, and x
                 specify the display base as decimal, octal or hexadecimal
                 respectively.
    
     _A[dox]     Identical to the _a conversion string except that it is only
                 performed once, when all of the input data has been processed.
    
  • 第二个:我们现在了解"%07.7_ax "部分。 8/2表示 8次迭代,以下为2个字节,"%04x "。最后,在这之后,我们有一个换行符:"\n"

我不确定你想要的21个字节,也许这样做:

hexdump -e '"%07.7_Ax\n"' -e '"%07.7_ax " 21/1 "%02x " "\n"'

如果需要,你知道如何摆脱偏移:

hexdump -e '21/1 "%02x " "\n"'