Using hexdump to output only ASCII

recluze picture recluze · Nov 8, 2012 · Viewed 44.6k times · Source

I'm trying to output ASCII values corresponding to some binary data. I have successfully applied the hexdump utility to output hexdump and ASCII side-by-side as below:

00000120  20 20 20 20 3d 20 30 78  30 30 30 30 30 30 33 30  |    = 0x00000030|
00000130  0a 01 00 00 00 23 00 00  00 75 75 69 64 30 20 20  |.....#...uuid0  |
00000140  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3d  |               =|
00000150  20 30 78 39 30 38 32 61  63 35 61 0a 01 00 00 00  | 0x9082ac5a.....|
00000160  23 00 00 00 75 75 69 64  31 20 20 20 20 20 20 20  |#...uuid1       |
00000170  20 20 20 20 20 20 20 20  20 20 3d 20 30 78 37 34  |          = 0x74|
00000180  61 37 34 37 36 66 0a 01  00 00 00 23 00 00 00 75  |a7476f.....#...u|
00000190  75 69 64 32 20 20 20 20  20 20 20 20 20 20 20 20  |uid2            |
000001a0  20 20 20 20 20 3d 20 30  78 61 32 35 35 35 63 30  |     = 0xa2555c0|

However, I would like to see only the ASCII as output values. I'm not interested in the hex values. For example, the output should be the following (approx. corresponding to the above):

= 0x00000030.....#...
uuid0=0x9082ac5a.....
uuid1=0x74a7476f

(I haven't been able to use the switches of hd for this.)

Answer

raina77ow picture raina77ow · Nov 8, 2012

If you only need to see the text contents of binary file, strings should be useful:

For each file given, GNU strings prints the printable character sequences that are at least 4 characters long (or the number given with the -n option) and are followed by an unprintable character. strings is mainly useful for determining the contents of non-text files.