hexdump
ascii, character, decimal, hexadecimal, octal dump
hexdump [-bcCdovx]
[-e "formatString"]
[-f formatFile]
[‑n count]
[‑s skip]
file ...
Multiple inputs are considered a continuous input.
Default the first digits are the offset in hexadecimal.
The last line is the number of bytes in the input in hexadecimal.
-s offset Skip offset bytes from the beginning of the input.
Default: offset is decimal, 0x or 0X prefixes hexadecimal, 0 prefixes octal.
Appending a b , k , or m to offset indicates a b lock of 512, 1024, or 1,048,576 bytes.
| -n count only count bytes of input.(decimal only)
hexdump -n 32 -C numbersAndLetters.txt
00000000 30 31 32 33 34 35 36 37 38 39 20 0a 61 62 63 64 |0123456789 .abcd|
00000010 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 |efghijklmnopqrst|
00000020 |
| -v Verbose, display all input data.
Default: duplicate output lines are represented by an * (asterisk).
cat 00
1234567890
00000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
abcdefg
hexdump -C 00
00000000 31 32 33 34 35 36 37 38 39 30 0a 30 30 30 30 30 |1234567890.00000|
00000010 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000|
*
00000060 30 30 30 30 30 30 30 30 0a 30 30 30 30 30 30 30 |00000000.0000000|
00000070 30 30 30 30 30 30 30 30 30 30 30 30 30 0a 30 30 |0000000000000.00|
00000080 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000|
00000090 30 30 0a 61 62 63 64 65 66 67 0a |00.abcdefg.|
0000009b
hexdump -v -C 00
00000000 31 32 33 34 35 36 37 38 39 30 0a 30 30 30 30 30 |1234567890.00000|
00000010 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000|
00000020 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000|
00000030 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000|
00000040 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000|
00000050 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000|
00000060 30 30 30 30 30 30 30 30 0a 30 30 30 30 30 30 30 |00000000.0000000|
00000070 30 30 30 30 30 30 30 30 30 30 30 30 30 0a 30 30 |0000000000000.00|
00000080 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000|
00000090 30 30 0a 61 62 63 64 65 66 67 0a |00.abcdefg.|
0000009b
Pre-Defined Formatting
|
---|
defaultOne-Byte Hexadecimal.
rows of 16, two digit, hexadecimal bytes.
hexdump 000
0000000 00 30 00 31 01 33 ff ff 03 02 05 04 0a
000000d (number of bytes in the file)
hexdump numbersAndLetters.txt
0000000 30 31 32 33 34 35 36 37 38 39 20 0a 61 62 63 64
0000010 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74
0000020 75 76 77 78 79 7a 0a 41 42 43 44 45 46 47 48 49
0000030 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59
0000040 5a 0a 01 02 03 04 05 06 07 08 09 00 0e 0f 10 11
0000050 12 13 14 15 16 17 18 19 1a 0a
000005a (number of bytes in the file) |
| -C upper case hex + ASCII
16, two digit, hexadecimal bytes,
followed by the same 16 bytes in ASCII if printable or a dot if unprintable
This is locale specific (i.e. LC_CTYPE="POSIX" ≠ LC_TYPE="en_US.UTF-8" ).
hexdump -C numbersAndLetters.txt
00000000 30 31 32 33 34 35 36 37 38 39 20 0a 61 62 63 64 |0123456789 .abcd|
00000010 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 |efghijklmnopqrst|
00000020 75 76 77 78 79 7a 0a 41 42 43 44 45 46 47 48 49 |uvwxyz.ABCDEFGHI|
00000030 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 |JKLMNOPQRSTUVWXY|
00000040 5a 0a 01 02 03 04 05 06 07 08 09 00 0e 0f 10 11 |Z...............|
00000050 12 13 14 15 16 17 18 19 1a 0a |..........|
0000005a (number of bytes in the file) |
| -c THREE-byte character†
16, 3 position, space-filled, ACSII characters
hexdump -c numbersAndLetters.txt
0000000 0 1 2 3 4 5 6 7 8 9 \n a b c d
0000010 e f g h i j k l m n o p q r s t
0000020 u v w x y z \n A B C D E F G H I
0000030 J K L M N O P Q R S T U V W X Y
0000040 Z \n 001 002 003 004 005 006 \a \b \t \0 016 017 020 021
0000050 022 023 024 025 026 027 030 031 032 \n
000005a |
Control characters (unprintable characters with values less then a space)
are displayed in 3 digit octal format or backslashMneumonic format where
\a is alert or bell, \b is backspace, \t is tab
\0 is a NULL \n is newline
| -x Two-byte hexadecimal
8, 4 position, hexadecimal, two-byte units
hexdump -x 000
0000000 0030 0031 0133 ffff 0302 0504 0a00
000000d |
| -d Two-byte decimal, unsigned 16bit integers
8, 5 digit, zero-filled†
hexdump -d 000
0000000 00048 00049 00307 65535 00770 01284 02560
000000d |
| -o Two-byte octal.
8 space-separated, 6 digit, zero-filled, two byte quantities of input data, in octal
hexdump -o numbersAndLetters.txt
0000000 030061 031063 032065 033067 034071 020012 060542 061544
0000010 062546 063550 064552 065554 066556 067560 070562 071564
0000020 072566 073570 074572 005101 041103 042105 043107 044111
0000030 045113 046115 047117 050121 051123 052125 053127 054131
0000040 055012 000402 001404 002406 003410 004400 007017 010021
0000050 011023 012025 013027 014031 015012
000005a |
| -b One-byte octal .
16 space-separated, 3 digit, zero-filled, bytes in octal, per line.
hexdump -b numbersAndLetters.txt
0000000 060 061 062 063 064 065 066 067 070 071 040 012 141 142 143 144
0000010 145 146 147 150 151 152 153 154 155 156 157 160 161 162 163 164
0000020 165 166 167 170 171 172 012 101 102 103 104 105 106 107 110 111
0000030 112 113 114 115 116 117 120 121 122 123 124 125 126 127 130 131
0000040 132 012 001 002 003 004 005 006 007 010 011 000 016 017 020 021
0000050 022 023 024 025 026 027 030 031 032 012
000005a |
| Custom Formatting
|
---|
‑e "formatString" Enclose the entire format string in apostrophes (' )
to prevent it from being intrepreted by the shell.
Example /usr/bin/hexdump -e '%X' FICRUICR.bin
FFFFFFFF*
3000D663E8D60003E8A0A4E07D6FFFFFFFF*
/usr/bin/hexdump -e '"%04.4_ax " 4/4 "%08X " "\n"' savebin.bin |more
0000 DEADC0DE F11E01FE 00050001 00000002
0010 000007A9 73616C46 65742068 64207473
0020 20617461 00000031 FFFFFFFF FFFFFFFF
0030 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
*
1000 DEADC0DE F11E01FF FFFFFFFF FFFFFFFF
1010 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
*
2000 DEADC0DE F11E01FE 00010000 000000F0
| -f fmt_file contains formatStrings .
Lines beginning with # or empty ignored.
| | | | | | | | | |
| | | |
Formats
formatString | formatUnit formatUnit … . Default:-x
formatUnit
[iterationCount ]
/
[byteCount ]
" conversionCode
[text ]"
| iterationCount integer number of output groups, default:1
Each formatUnit is applied iterationCount times.
| byteCount integer number of input bytes to be formatted
If byteCount is omitted it is the default of the conversion character.
For ConversionCode s the byteCount s are:
u, X, x 1 or 2 or 4
| G, g, f 4 or 8 default
| _c, _p, _u, c 1 default
| | | |
| conversionCode
% [[0 ]w ]]type
conversionCode is interpreted similar to a fprintf format string
w width of the output field.
Leading 0 causes 0 fill for n positions.
| type d|o |s |c |u |X |x |G |g |f
|
- byte count or field precision is required for each
s (string) conversion character
- asterisk (
* ) may not be used as a field width or precision.
- conversion characters
h, l, n, p and q are not supported.
| | _a[dox] input offset (address), cumulative across input files, of
the next byte to be displayed.
A required suffix of decimal, octal or hexadecimal.
Do not include an additional ConversionCode
| | _c characters in the default character set.
Nonprinting characters are displayed in 3 character, zero-padded octal,
or by escape sequences (For example \n )
| | _p characters in the default character set,
Nonprinting characters are displayed as a . (dot)
| | _u US ASCII characters,
control characters are displayed using names.
00 nul 01 soh 02 stx 03 etx 04 eot 05 enq
06 ack 07 bel 08 bs 09 ht 0A lf 0B vt
0C ff 0D cr 0E so 0F si 10 dle 11 dc1
12 dc2 13 dc3 14 dc4 15 nak 16 syn 17 etb
18 can 19 em 1A sub 1B esc 1C fs 1D gs
1E rs 1F us FF del
Characters greater than 0xFF are displayed as hexadecimal.
| | _A[dox] number of bytes in input.
Performed once, after the input has been processed.
| text arbitary text including space, : , etc for output clairification.
single character escape sequences are:
NULL \0 alert
\a
backspace
\b form‑feed
\f
newline
\ncarriage return
\r
tab \t vertical tab
\v
| | | | | | |
|
| | | | | | | | | | | | | |
The amount of input data interpreted by each formatString
is :
( ic * bc ) + ( ic * bc ) …
the sum of the data required by each formatUnit
ie:
( iterationCount
times byteCount
).
The input is intrepreted in blocks which is the
largest amount of data specified by any formatString
.
A formatString
that interprets less than a block,
where the final formatUnit
does not specify an iteration count
,
the iteration count
is increased to intrepret the remainder of the block.
If, as a result of user specification or hexdump
modifying the iteration count
,
an iteration count
is greater than one, no trailing whitespace is output during the last iteration.
It is an error to specify a byte count
and multiple conversion strings ( except for _a
or _A
offset or fileSize).
If, as a result of the specification of -n
or end-of-file
being reached, input data only partially satisfies a formatString
, the
input block is zero-padded sufficiently to display all available data
(i.e. any formatUnit
s overlapping the end of data will display some number of the zero bytes).
Further output by such formatStrings
is replaced by the
number of
spaces output by an s
conversionCode with the same field width and
precision as the original conversion character or conversion string but
with any +
,
, #
conversion flag characters removed, and referencing a null string.
hexdump exits 0 on success and >0 if an error occurred.
Examples
File 64c.hexdump contains:
"%07.7_ax " 16/1 "%_p" " " 16/1 "%_p" " " 16/1 "%_p" " " 16/1 "%_p" "\n"
produces:
/usr/bin/hexdump -f 64c.hexdump timestampso
0000000 ............a... ............(... U............... ................
0000040 ........9...?... ..............h^ ................ ................
0000080 ................ ................ ................ ................
*
0001000 ................ ................ ....x.V.K.2.'... ..........i.^.&.
0001040 ............{.H. =............... y.`.U.)......... ......[.P.-."...
0001080 ..........e.Z... ..........j._.7. ,.........y.n.R. G.............a.
00010c0 V.%............. ..|.q.J.?.$..... ..........V.K.!. ..............d.
0001100 Y.9............. ..m.b.&......... ..........w.l.N. C.!.............
0001140 ..|.q.V.K...2911 895552.wgegerm@p ppg.org|ip=67.22 8.1437728768.ere
0001180 pwatch@taipeieye .com|ip=85.121.1 437728768.nopes@ musicpride.ru|ip
00011c0 =109.188.1437728 768.nnegi@itmmi. com|ip=64.147.14 37728768.marylin
0001200 h.h@gmail.com|ip =64.27.143772876 8.avipyxu9999@td cmobil.dk|ip=62.
0001240 135.1437728768.j eremycole@boc.co m|ip=218.111.143 7728768.r20j19@m
0001280 s29.hi.651034624 .trustfundslt@gm ail.com|ip=201.3 3.2211184640.onl
00012c0 inedoctorate.zsm un@huggyt.wetpla cetold.net|ip=67 .50.3675783168.s
0001300 imon@ruderich.or g|ip=93.206.3458 334720.timeshare agent.tqkzvpr@ee
…
0001e40 on.networkworld. info|ip=66.186.1 437728768.freecr editscorecom.kme
0001e80 kux@aulvuj.mesop hy.net|ip=70.98. 1437728768.esimp son@mspu.us|ip=6
0001ec0 4.34.3352233568. fred_pryor_semin ars@busenetwork. net|ip=208.89.30
0001f00 57647616.kbauer@ corp.ptd.net|ip= 204.186.28754575 36.info@honda.co
0001f40 m|ip=41.138.1455 947776.michaelwo okey@gmail.com|i p=209.85.1528823
0001f80 808.allen.l.park er@gmail.com|ip= 209.85.291189555 2.postmaster@nos
0001fc0 e.obic.co.jp|ip= 202.224.28754575 36.specials@regf ly.com|ip=67.212
0002000 ................ ......[......... ..|.q.I.>....... ......c.X.7.-...
Just see an "almost" text file with unprintable characters replaced by dots and wraped at
Display the input in perusal format:
"%06.6_ao " 12/1 "%3_u "
"\t\t" "%_p "
"\n"
hexdump -x 000
0000000 0030 0031 0133 ffff 0302 0504 0a00
000000d
hexdump -f 0x 000
000000 nul 0 nul 1 soh 3 ? ? etx stx enq eot . 0 . 1 . 3 ? ? . . . .
000014 lf
Implement the -x option:
"%07.7_Ax\n"
"%07.7_ax " 8/2 "%04x " "\n"
STANDARDS
The hexdump utility is expected to be IEEE Std 1003.2 (POSIX.2) compatible.
adapted from: BSD April 18, 1994
see also
xxd convert to hex and back
od Octal Dump does hex as well.