Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

improve hexdump output

by daxim (Chaplain)
on Feb 28, 2013 at 15:53 UTC ( #1021070=CUFP: print w/ replies, xml ) Need Help??

hexdump only shows ASCII characters in the visualisation column, and substitutes everything else with a period. That's lame, but nothing that the following filter from my ~/.bashrc couldn't fix:
# Turn   1220  4c 29 e5 41 89 ff 49 89  f6 48 c1 fd 03 49 89 d5  L).A..I. .H...I..
# into   1220  4c 29 e5 41 89 ff 49 89  f6 48 c1 fd 03 49 89 d5  L)A�I�H␃I�
# requires http://catb.org/~esr/hexdump/
hex () {
    hexdump $@ | perl -C -ne'
        $_ = substr $_, 0, 56;  # without right-hand side columns
        print $_;
        @F = split;             # split on space
        shift @F;               # drop address column
        for (@F) {
            $h = hex;
            if ($h < 32) {
                print chr($h+0x2400);   # control character symbols
            } elsif (127 == $h) {
                print chr 0x2421;       # delete symbol
            } elsif (0x80 <= $h and $h <= 0x9f) {
                print chr 0xFFFD;       # undefined in iso-latin-1
            } elsif (0xa0 == $h) {
                print chr 0x2420;       # non-breaking space as space symbol
            } else {
                print chr $h;           # just the character as is
            };
        };
        print qq(\n);
    '
}

Comment on improve hexdump output

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://1021070]
Approved by moritz
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (8)
As of 2015-07-08 01:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls