Binary/Hex Conversion in Linux Shell with xxd [RE#13]

It’s not that unusual to need to see/check/verify the binary output of a shell command in HEX format. Clearly, I mean without picking up a HEX editor or something like that. Last time, it happened to me a few days ago when I was to inspect the content of a base64-encoded string. The tool to the rescue is (of course not limited to) xxd. 🏅

Using xxd, to get the HEX representation for some binary content you just need to call it with no argument:

echo -n 'Computer says: "Hello World!"' | xxd

Depending on the case it could be more insightful to also have the ASCII values column. That’s simply done by calling xxd with -C option:

echo -n 'Computer says: "Hello World!"' | xxd -C

Which results in such a neat output:

00000000: 436f 6d70 7574 6572 2073 6179 733a 2022  Computer says: "
00000010: 4865 6c6c 6f20 576f 726c 6421 22         Hello World!"

Also, xxd can do things the other way. For instance, may you need to turn a HEX string into a binary content, just call xxd with -r option, like this:

echo -n "0x48656c6c6f20576f726c6421" | xxd -r

Which would result in:

Hello World!

There are more xxd options which you can find by checking:

xxd --help

or

man xxd

About Regular Encounters
I’ve decided to record my daily encounters with professional issues on a somewhat regular basis. Not all of them are equally important/unique/intricate, but are indeed practical, real, and of course, textually minimal.