Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
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 romping around the Monastery: (16)
As of 2014-07-11 15:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (230 votes), past polls