The xxd is a bash command in Linux and macOS that is used to take a hexdump (convert a string to hex), or convert hex back to a string. To use xxd, just call it with a couple of options. Below, we’ll use the -p option to export into plain hexdump, and we’ll quote it and the <<< is to take input rather than a file name to convert (the default behavior), as follows:
xxd -p <<< "hey it's a string"
The output would be a hex string, as follows:
6865792069742773206120737472696e670a
Then use the -r option to revert your hex back to text. Since xxd doesn’t allow for a positional parameter to revert, we’ll simply echo the hex string and pipe it back into xxd, as follows:
echo 6865792069742773206120737472696e670a | xxd -r -p
And the output would be (is):
hey it's a string
Other useful options:
- -b: Perform a binary dump instead of a hex dump
- -e: what it looks like when a little endian takes a hex dump
- -h: get help with the command
- -len: stop after the defined number of characters
- -u: use uppercase in the hex, instead of the default lower-case (doesn’t seem to actually work on macOS)
- -v: grab the version of xxd